"use client"; import { useState } from "react"; import { Plus, Trash2 } from "lucide-react"; import { type Department } from "@/lib/schema"; import { DeleteConfirmDialog } from "@/components/workspace/DeleteConfirmDialog"; import { Button } from "@/components/ui/button"; import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogClose, } from "@/components/ui/dialog"; import { FieldGroup, Field, FieldLabel } from "@/components/ui/field"; import { Input } from "@/components/ui/input"; import { InputGroup, InputGroupInput, InputGroupAddon, } from "@/components/ui/input-group"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Separator } from "@/components/ui/separator"; type SettingsDialogContentProps = { departments: Department[]; onAddDepartment: (name: string) => void; onDeleteDepartment: (deptId: string) => void; }; export function SettingsDialogContent({ departments, onAddDepartment, onDeleteDepartment, }: SettingsDialogContentProps) { const [newDeptName, setNewDeptName] = useState(""); const [deleteDeptTarget, setDeleteDeptTarget] = useState<{ id: string; name: string; } | null>(null); const handleAddDept = () => { const trimmed = newDeptName.trim(); if (!trimmed) return; onAddDepartment(trimmed); setNewDeptName(""); }; return ( <> ワークスペース設定 事業部やワークスペース名を管理します 事業部
{departments.map((dept) => (
{dept.name}
))} {departments.length === 0 && (
事業部がありません
)}
setNewDeptName(e.target.value)} onKeyDown={(e) => { if (e.key === "Enter") handleAddDept(); }} />
ワークスペース名
閉じる} />
{ if (!open) setDeleteDeptTarget(null); }} title="事業部を削除しますか?" itemName={deleteDeptTarget?.name ?? ""} onConfirm={() => { if (deleteDeptTarget) { onDeleteDepartment(deleteDeptTarget.id); setDeleteDeptTarget(null); } }} /> ); }