diff options
Diffstat (limited to 'lib/menu-list/table/initialize-button.tsx')
| -rw-r--r-- | lib/menu-list/table/initialize-button.tsx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/menu-list/table/initialize-button.tsx b/lib/menu-list/table/initialize-button.tsx new file mode 100644 index 00000000..1b8a2458 --- /dev/null +++ b/lib/menu-list/table/initialize-button.tsx @@ -0,0 +1,42 @@ +// app/evcp/menu-list/components/initialize-button.tsx + +"use client"; + +import { useState } from "react"; +import { Button } from "@/components/ui/button"; +import { RefreshCw } from "lucide-react"; +import { toast } from "sonner"; +import { initializeMenuAssignments } from "../servcie"; + +export function InitializeButton() { + const [isLoading, setIsLoading] = useState(false); + + const handleInitialize = async () => { + setIsLoading(true); + try { + const result = await initializeMenuAssignments(); + + if (result.success) { + toast.success(result.message); + } else { + toast.error(result.message); + } + } catch (error) { + toast.error("메뉴 초기화 중 오류가 발생했습니다."); + } finally { + setIsLoading(false); + } + }; + + return ( + <Button + onClick={handleInitialize} + disabled={isLoading} + variant="outline" + size="sm" + > + <RefreshCw className={`h-4 w-4 mr-2 ${isLoading ? 'animate-spin' : ''}`} /> + 메뉴 초기화 + </Button> + ); +}
\ No newline at end of file |
