UNPKG

ivt

Version:

Ivt Components Library

1 lines 4.67 kB
{"version":3,"file":"DeleteConfirmationModal-CjXlfOWx.mjs","sources":["../../src/components/default/base/DeleteConfirmationModal.tsx"],"sourcesContent":["\"use client\";\n\nimport { Trash2Icon } from \"lucide-react\";\nimport React from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tDialog,\n\tDialogClose,\n\tDialogContent,\n\tDialogDescription,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from \"@/components/ui/dialog\";\n\nexport interface DeleteConfirmationModalProps {\n\tonConfirm: () => Promise<void> | void;\n\ttitle?: string;\n\tdescription?: string;\n\tconfirmText?: string;\n\tcancelText?: string;\n\tdisabled?: boolean;\n\tchildren?: React.ReactNode;\n\t/**\n\t * Ícone a ser exibido no botão de confirmação.\n\t * Se não fornecido, usa Trash2Icon por padrão.\n\t * Se for null, não exibe ícone.\n\t */\n\tconfirmIcon?: React.ComponentType<{ className?: string }> | null;\n}\n\nexport function DeleteConfirmationModal({\n\tonConfirm,\n\ttitle = \"Tem certeza que deseja apagar?\",\n\tdescription = \"Essa ação não pode ser desfeita.\",\n\tconfirmText = \"Apagar\",\n\tcancelText = \"Cancelar\",\n\tdisabled = false,\n\tchildren,\n\tconfirmIcon = Trash2Icon,\n}: DeleteConfirmationModalProps) {\n\tconst [isPending, startTransition] = React.useTransition();\n\n\tconst handleConfirm = () => {\n\t\tstartTransition(async () => {\n\t\t\tawait onConfirm();\n\t\t});\n\t};\n\n\treturn (\n\t\t<Dialog>\n\t\t\t<DialogTrigger className=\"*:font-lato\" asChild>\n\t\t\t\t{children ? (\n\t\t\t\t\tchildren\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\tclassName=\"text-destructive hover:text-destructive w-full items-start justify-start px-2\"\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{confirmText}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</DialogTrigger>\n\t\t\t<DialogContent className=\"*:font-lato max-w-[425px]\">\n\t\t\t\t<DialogHeader className=\"text-left\">\n\t\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t\t</DialogHeader>\n\t\t\t\t<DialogFooter className=\"flex flex-row flex-wrap items-start justify-between sm:justify-between\">\n\t\t\t\t\t<DialogClose asChild>\n\t\t\t\t\t\t<Button variant=\"outline\" disabled={isPending}>\n\t\t\t\t\t\t\t{cancelText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</DialogClose>\n\t\t\t\t\t<DialogClose asChild>\n\t\t\t\t\t\t<Button variant=\"destructive\" onClick={handleConfirm} disabled={disabled || isPending}>\n\t\t\t\t\t\t\t{confirmIcon && React.createElement(confirmIcon, { className: \"h-4 w-4\" })}\n\t\t\t\t\t\t\t{confirmText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</DialogClose>\n\t\t\t\t</DialogFooter>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n"],"names":["DeleteConfirmationModal","onConfirm","title","description","confirmText","cancelText","disabled","children","confirmIcon","Trash2Icon","isPending","startTransition","React","useTransition","handleConfirm","Dialog","DialogTrigger","className","asChild","Button","variant","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogFooter","DialogClose","onClick","createElement"],"mappings":";;;;;AAgCO,SAASA,uBAAAA,CAAwB,EACvCC,SAAS,EACTC,QAAQ,gCAAgC,EACxCC,WAAAA,GAAc,kCAAkC,EAChDC,WAAAA,GAAc,QAAQ,EACtBC,UAAAA,GAAa,UAAU,EACvBC,QAAAA,GAAW,KAAK,EAChBC,QAAQ,EACRC,WAAAA,GAAcC,MAAU,EACM,EAAA;AAC9B,IAAA,MAAM,CAACC,SAAAA,EAAWC,eAAAA,CAAgB,GAAGC,eAAMC,aAAa,EAAA;AAExD,IAAA,MAAMC,aAAAA,GAAgB,IAAA;QACrBH,eAAAA,CAAgB,UAAA;YACf,MAAMV,SAAAA,EAAAA;AACP,QAAA,CAAA,CAAA;AACD,IAAA,CAAA;IAEA,qBACCW,cAAA,CAAA,aAAA,CAACG,4BACAH,cAAA,CAAA,aAAA,CAACI,aAAAA,EAAAA;QAAcC,SAAAA,EAAU,aAAA;QAAcC,OAAAA,EAAAA;AACrCX,KAAAA,EAAAA,QAAAA,GACAA,yBAEAK,cAAA,CAAA,aAAA,CAACO,MAAAA,EAAAA;QACAC,OAAAA,EAAQ,OAAA;QACRH,SAAAA,EAAU,+EAAA;QACVX,QAAAA,EAAUA;AAETF,KAAAA,EAAAA,WAAAA,CAAAA,CAAAA,gBAIJQ,cAAA,CAAA,aAAA,CAACS,aAAAA,EAAAA;QAAcJ,SAAAA,EAAU;qBACxBL,cAAA,CAAA,aAAA,CAACU,YAAAA,EAAAA;QAAaL,SAAAA,EAAU;AACvB,KAAA,gBAAAL,cAAA,CAAA,aAAA,CAACW,WAAAA,EAAAA,IAAAA,EAAarB,KAAAA,CAAAA,gBACdU,cAAA,CAAA,aAAA,CAACY,iBAAAA,EAAAA,IAAAA,EAAmBrB,6BAErBS,cAAA,CAAA,aAAA,CAACa,YAAAA,EAAAA;QAAaR,SAAAA,EAAU;qBACvBL,cAAA,CAAA,aAAA,CAACc,WAAAA,EAAAA;QAAYR,OAAAA,EAAAA;qBACZN,cAAA,CAAA,aAAA,CAACO,MAAAA,EAAAA;QAAOC,OAAAA,EAAQ,SAAA;QAAUd,QAAAA,EAAUI;AAClCL,KAAAA,EAAAA,UAAAA,CAAAA,CAAAA,gBAGHO,cAAA,CAAA,aAAA,CAACc,WAAAA,EAAAA;QAAYR,OAAAA,EAAAA;qBACZN,cAAA,CAAA,aAAA,CAACO,MAAAA,EAAAA;QAAOC,OAAAA,EAAQ,aAAA;QAAcO,OAAAA,EAASb,aAAAA;AAAeR,QAAAA,QAAAA,EAAUA,QAAAA,IAAYI;OAC1EF,WAAAA,kBAAeI,cAAAA,CAAMgB,aAAa,CAACpB,WAAAA,EAAa;QAAES,SAAAA,EAAW;KAAU,CAAA,EACvEb,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAOR;;;;"}