diff options
Diffstat (limited to 'lib/information/table/delete-information-dialog.tsx')
| -rw-r--r-- | lib/information/table/delete-information-dialog.tsx | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/lib/information/table/delete-information-dialog.tsx b/lib/information/table/delete-information-dialog.tsx deleted file mode 100644 index e36d948d..00000000 --- a/lib/information/table/delete-information-dialog.tsx +++ /dev/null @@ -1,125 +0,0 @@ -"use client"
-
-import * as React from "react"
-import { useRouter } from "next/navigation"
-import { toast } from "sonner"
-import { Loader, Trash2 } from "lucide-react"
-
-import {
- AlertDialog,
- AlertDialogAction,
- AlertDialogCancel,
- AlertDialogContent,
- AlertDialogDescription,
- AlertDialogFooter,
- AlertDialogHeader,
- AlertDialogTitle,
-} from "@/components/ui/alert-dialog"
-import { deleteInformation } from "@/lib/information/service"
-import type { PageInformation } from "@/db/schema/information"
-
-interface DeleteInformationDialogProps {
- open: boolean
- onOpenChange: (open: boolean) => void
- information?: PageInformation
- onClose: () => void
-}
-
-export function DeleteInformationDialog({
- open,
- onOpenChange,
- information,
- onClose,
-}: DeleteInformationDialogProps) {
- const router = useRouter()
- const [isLoading, setIsLoading] = React.useState(false)
-
- const handleDelete = async () => {
- if (!information) return
-
- setIsLoading(true)
- try {
- const result = await deleteInformation(information.id)
-
- if (result.success) {
- toast.success(result.message)
- onClose()
- router.refresh()
- } else {
- toast.error(result.message)
- }
- } catch (error) {
- toast.error("인포메이션 삭제에 실패했습니다.")
- console.error(error)
- } finally {
- setIsLoading(false)
- }
- }
-
- return (
- <AlertDialog open={open} onOpenChange={onOpenChange}>
- <AlertDialogContent>
- <AlertDialogHeader>
- <AlertDialogTitle className="flex items-center gap-2">
- <Trash2 className="h-5 w-5 text-destructive" />
- 인포메이션 삭제
- </AlertDialogTitle>
- <AlertDialogDescription>
- 다음 인포메이션을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.
- </AlertDialogDescription>
- </AlertDialogHeader>
-
- {information && (
- <div className="bg-muted rounded-lg p-4 my-4">
- <div className="space-y-2">
- <div>
- <span className="font-medium text-sm">페이지 코드:</span>
- <span className="ml-2 font-mono text-sm">{information.pageCode}</span>
- </div>
- <div>
- <span className="font-medium text-sm">페이지명:</span>
- <span className="ml-2 text-sm">{information.pageName}</span>
- </div>
- <div>
- <span className="font-medium text-sm">제목:</span>
- <span className="ml-2 text-sm">{information.title}</span>
- </div>
- {information.noticeTitle && (
- <div>
- <span className="font-medium text-sm">공지사항 제목:</span>
- <span className="ml-2 text-sm">{information.noticeTitle}</span>
- </div>
- )}
- {information.noticeContent && (
- <div>
- <span className="font-medium text-sm">공지사항 내용:</span>
- <span className="ml-2 text-sm text-orange-600">{information.noticeContent}</span>
- </div>
- )}
- {information.attachmentFileName && (
- <div>
- <span className="font-medium text-sm">첨부파일:</span>
- <span className="ml-2 text-sm">{information.attachmentFileName}</span>
- </div>
- )}
- </div>
- </div>
- )}
-
- <AlertDialogFooter>
- <AlertDialogCancel onClick={onClose} disabled={isLoading}>
- 취소
- </AlertDialogCancel>
- <AlertDialogAction
- onClick={handleDelete}
- disabled={isLoading}
- className="bg-destructive text-destructive-foreground hover:bg-destructive/90"
- >
- {isLoading && <Loader className="mr-2 h-4 w-4 animate-spin" />}
- 삭제
- </AlertDialogAction>
- </AlertDialogFooter>
- </AlertDialogContent>
- </AlertDialog>
- )
-}
\ No newline at end of file |
