gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/settings-dialog/index.tsx · v0.5.5
Source
1 f5c168d Mardin 2y ago import { type FC, type PropsWithChildren, useEffect } from "react";
2 4708fcb Dawsh 2y ago import {
3 f5c168d Mardin 2y ago ScrollArea,
4 f5c168d Mardin 2y ago Sheet,
5 f5c168d Mardin 2y ago SheetContent,
6 f5c168d Mardin 2y ago SheetHeader,
7 f5c168d Mardin 2y ago SheetTitle,
8 4708fcb Dawsh 2y ago } from "@marzneshin/components";
9 4708fcb Dawsh 2y ago import { useTranslation } from "react-i18next";
10 4708fcb Dawsh 2y ago
11 4708fcb Dawsh 2y ago export interface SettingsDialogProps {
12 f5c168d Mardin 2y ago onOpenChange: (state: boolean) => void;
13 f5c168d Mardin 2y ago open: boolean;
14 f5c168d Mardin 2y ago onClose?: () => void;
15 4708fcb Dawsh 2y ago }
16 4708fcb Dawsh 2y ago
17 4708fcb Dawsh 2y ago export const SettingsDialog: FC<SettingsDialogProps & PropsWithChildren> = ({
18 f5c168d Mardin 2y ago open,
19 f5c168d Mardin 2y ago onOpenChange,
20 f5c168d Mardin 2y ago children,
21 f5c168d Mardin 2y ago onClose = () => null,
22 4708fcb Dawsh 2y ago }) => {
23 f5c168d Mardin 2y ago const { t } = useTranslation();
24 f5c168d Mardin 2y ago
25 f5c168d Mardin 2y ago useEffect(() => {
26 f5c168d Mardin 2y ago if (!open) onClose();
27 f5c168d Mardin 2y ago }, [open, onClose]);
28 f5c168d Mardin 2y ago
29 f5c168d Mardin 2y ago return (
30 f5c168d Mardin 2y ago <Sheet open={open} onOpenChange={onOpenChange}>
31 f5c168d Mardin 2y ago <SheetContent className="sm:min-w-full md:min-w-[700px] space-y-5">
32 f5c168d Mardin 2y ago <SheetHeader>
33 f5c168d Mardin 2y ago <SheetTitle>{t("settings")}</SheetTitle>
34 f5c168d Mardin 2y ago </SheetHeader>
35 8a2772f Mardin 2y ago <ScrollArea className="flex flex-col gap-4 h-[calc(100vh-100px)] max-h-full">
36 f5c168d Mardin 2y ago {children}
37 f5c168d Mardin 2y ago </ScrollArea>
38 f5c168d Mardin 2y ago </SheetContent>
39 f5c168d Mardin 2y ago </Sheet>
40 f5c168d Mardin 2y ago );
41 f5c168d Mardin 2y ago };