import { useState } from "react"
import { Button, Drawer, Window } from "@dxdns-kit/react"
export default function () {
const [drawerStates, setDrawerStates] = useState({
type DrawerPosition = keyof typeof drawerStates
const [isOpenFixed, setIsOpenFixed] = useState(false)
function handleToggle(position: DrawerPosition) {
setDrawerStates((prev) => ({
[position]: !prev[position]
function handleClose(position: DrawerPosition) {
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 DrawerPosition[]).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>