import { useState } from "react"
import { Button, Drawer, Window } from "@dxdns/feflow-react"
type PositionType = "top" | "left" | "right" | "bottom"
export default function () {
const [drawerStates, setDrawerStates] = useState<
Record<PositionType, boolean>
const [isOpenFixed, setIsOpenFixed] = useState(false)
function handleToggle(position: PositionType) {
setDrawerStates((prev) => ({
[position]: !prev[position]
function handleClose(position: PositionType) {
setDrawerStates((prev) => ({
const renderHeader = (handleClose?: () => void) => (
<Drawer.Header handleClose={handleClose}>
const renderContent = () => (
<Drawer isOpen={isOpenFixed} position="right">
<Button onClick={() => setIsOpenFixed((prev) => !prev)}>
<Window style={{ minHeight: "500px", position: "relative" }}>
{(["top", "left", "right", "bottom"] as PositionType[]).map((pos) => (
isOpen={drawerStates[pos]}
onClick={() => handleClose(pos)}
style={{ position: "absolute" }}
isOpen={drawerStates[pos]}
style={{ position: "absolute" }}
{renderHeader(() => handleClose(pos))}
<div style={{ display: "flex", gap: "1rem", flexWrap: "wrap" }}>
<Button onClick={() => handleToggle("top")}>Top With Overlay</Button>
<Button onClick={() => handleToggle("left")}>
<Button onClick={() => handleToggle("right")}>Right</Button>
<Button onClick={() => handleToggle("bottom")}>Bottom</Button>