summaryrefslogtreecommitdiff
path: root/lib/menu-list/table/initialize-button.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-06-30 08:28:13 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-06-30 08:28:13 +0000
commit5b6313f16f508882a0ea67716b7dbaa1c6967f04 (patch)
tree3d1d8dafea2f31274ace3fbda08333e889e06d1c /lib/menu-list/table/initialize-button.tsx
parent3f0fad18483a5c800c79c5e33946d9bb384c10e2 (diff)
(대표님) 20250630 16시 - 유저 도메인별 라우터 분리와 보안성검토 대응
Diffstat (limited to 'lib/menu-list/table/initialize-button.tsx')
-rw-r--r--lib/menu-list/table/initialize-button.tsx42
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