From f2b5d9ab5dba5b583d9125c018a5f3f2642dc666 Mon Sep 17 00:00:00 2001 From: biersoeckli Date: Thu, 31 Oct 2024 12:11:27 +0000 Subject: [PATCH] added async confirm dialog --- bun.lockb | Bin 285483 -> 285960 bytes package.json | 3 +- src/app/layout.tsx | 2 + src/app/project/apps-table.tsx | 10 +++- src/components/custom/confirm-dialog.tsx | 37 +++++++++++++++ src/lib/zustand.states.ts | 57 +++++++++++++++++++++++ src/model/generated-zod/appvolume.ts | 1 + 7 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 src/components/custom/confirm-dialog.tsx create mode 100644 src/lib/zustand.states.ts diff --git a/bun.lockb b/bun.lockb index 755a97915f475d96f1fbe2b841c8837b641fefad..1bd2d70ba2621e2709509bc0fbeb387b73c2c2af 100755 GIT binary patch delta 54761 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 delta 54497 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ⅅy+mbhcXP0!YBEm2K;6d{BEtFG6b<2 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 + ); diff --git a/src/app/project/apps-table.tsx b/src/app/project/apps-table.tsx index dc2c174..a30702b 100644 --- a/src/app/project/apps-table.tsx +++ b/src/app/project/apps-table.tsx @@ -8,13 +8,16 @@ import { formatDateTime } from "@/lib/format.utils"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"; import { MoreHorizontal } from "lucide-react"; import { Toast } from "@/lib/toast.utils"; -import { App, Project } from "@prisma/client"; +import { App } from "@prisma/client"; import { deleteApp } from "./actions"; +import { useConfirmDialog } from "@/lib/zustand.states"; export default function AppTable({ data }: { data: App[] }) { + const { openDialog } = useConfirmDialog(); + return <> - Toast.fromAction(() => deleteApp(item.id))}> + openDialog({ + title: "Delete App", + description: "Are you sure you want to delete this app?", + }).then((result) => result ? Toast.fromAction(() => deleteApp(item.id)) : undefined)}> Delete App diff --git a/src/components/custom/confirm-dialog.tsx b/src/components/custom/confirm-dialog.tsx new file mode 100644 index 0000000..0224f76 --- /dev/null +++ b/src/components/custom/confirm-dialog.tsx @@ -0,0 +1,37 @@ +'use client' + +import { Button } from "@/components/ui/button" +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog" +import React from "react"; +import { useConfirmDialog } from "@/lib/zustand.states"; + +export function ConfirmDialog() { + const { isDialogOpen, data, closeDialog } = useConfirmDialog(); + if (!data) { + return <>; + } + + return ( + + + + {data.title} + + {data.description} + + + + + + + + + ) +} diff --git a/src/lib/zustand.states.ts b/src/lib/zustand.states.ts new file mode 100644 index 0000000..566268c --- /dev/null +++ b/src/lib/zustand.states.ts @@ -0,0 +1,57 @@ +import dataAccess from "@/server/adapter/db.client"; +import { create } from "zustand" + +interface ZustandDialogProps { + isDialogOpen: boolean; + data: DialogProps | null; + resolvePromise: ((result: boolean) => void) | null; + openDialog: (data: DialogProps) => Promise; + closeDialog: (result: boolean) => void; +} + +export interface DialogProps { + title: string; + description: string; + yesButton?: string; + noButton?: string; +} + +export interface InternDialogProps extends DialogProps { + returnFunc: (dialogResult: boolean) => boolean; +} + +export const useConfirmDialog = create((set) => ({ + isDialogOpen: false, + data: null, + resolvePromise: null, + openDialog: (data) => { + return new Promise((resolve) => { + set({ + isDialogOpen: true, + data: data, + resolvePromise: resolve, + }); + }); + }, + closeDialog: (result) => set((state) => { + if (state.resolvePromise) { + state.resolvePromise(result); // Erfülle das Promise mit true oder false + } + return { isDialogOpen: false, userInfo: null, resolvePromise: null }; + }), +})); +/* +export async function confirmDialog(props: DialogProps): Promise { + + const { openDialog } = useConfirmDialog(); + return new Promise((resolve) => { + const extendedPropd = { + ...props, + returnFunc: (returnVal) => { + resolve(returnVal); + } + } as InternDialogProps; + openDialog(extendedPropd); + }); + +}*/ \ No newline at end of file diff --git a/src/model/generated-zod/appvolume.ts b/src/model/generated-zod/appvolume.ts index 7a3fecc..4c248a9 100644 --- a/src/model/generated-zod/appvolume.ts +++ b/src/model/generated-zod/appvolume.ts @@ -5,6 +5,7 @@ import { CompleteApp, RelatedAppModel } from "./index" export const AppVolumeModel = z.object({ id: z.string(), containerMountPath: z.string(), + size: z.number().int(), appId: z.string(), createdAt: z.date(), updatedAt: z.date(),