import { useLocal } from "lib/utils/use-local"; import * as SheetPrimitive from "@radix-ui/react-dialog"; import { X } from "lucide-react"; import { FC, useEffect } from "react"; import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, } from "lib/comps/ui/sheet"; export const SheetCn: FC<{ child: any; PassProp: any; props: any; content: any; header: string; open: string; close?: string; mode?: "full" | "normal" | "1/3"; direction?: "left" | "right" | "bottom" | "top"; deps?: any; _item?: PrasiItem; onInit?: (e: any) => void; }> = ({ child, PassProp, props, content, header, open, close, mode, direction, deps, _item, onInit, }) => { const local = useLocal({ open: false, data: null as any, }); useEffect(() => { if (isEditor) { let op = open === "y" ? true : false; if (local.open !== op) { local.open = op; local.render(); } } else { if (typeof onInit === "function") { onInit({ data: local, deps, open: () => { local.open = true; local.render(); setTimeout(() => { document.body.style.pointerEvents = "auto"; }, 1000); }, close: () => { local.open = false; local.render(); }, }); } } }, [open]); return (
{ local.open = true; local.render(); setTimeout(() => { document.body.style.pointerEvents = "auto"; }, 1000); }, close: () => { local.open = false; local.render(); }, }} > {child}
{ local.open = false; local.render(); }} className={cx( "", css` background-color: #00000038 !important; z-index: 1; ` )} />
{close !== "n" ? ( { local.open = false; local.render(); }} className={cx( "c-absolute c-right-4 c-rounded-sm c-opacity-70 c-ring-offset-background c-transition-opacity hover:c-opacity-100 focus:c-outline-none focus:c-ring-2 focus:c-ring-ring focus:c-ring-offset-2 disabled:c-pointer-events-none data-[state=open]:c-bg-accent data-[state=open]:c-text-muted-foreground", css` right: 1rem; z-index: 99; transform: translateY(50%); ` )} > Close ) : ( <> )} {header !== "" && header ? ( {header} ) : ( <> )}
{ local.open = true; local.render(); setTimeout(() => { document.body.style.pointerEvents = "auto"; }, 1000); }, close: () => { local.open = false; local.render(); }, }} > {content}
); };