"use client"; import React from "react"; import { useSortable } from "@dnd-kit/sortable"; import { CSS } from "@dnd-kit/utilities"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Edit, Trash2 } from "lucide-react"; import { cn } from "@/lib/utils"; import { useUpdateCode } from "@/hooks/queries/useCodes"; import type { CodeInfo } from "@/types/commonCode"; interface SortableCodeItemProps { code: CodeInfo; categoryCode: string; onEdit: () => void; onDelete: () => void; isDragOverlay?: boolean; } export function SortableCodeItem({ code, categoryCode, onEdit, onDelete, isDragOverlay = false, }: SortableCodeItemProps) { const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: code.code_value, disabled: isDragOverlay, }); const updateCodeMutation = useUpdateCode(); const style = { transform: CSS.Transform.toString(transform), transition, }; // 활성/비활성 토글 핸들러 const handleToggleActive = async (checked: boolean) => { try { await updateCodeMutation.mutateAsync({ categoryCode, codeValue: code.code_value, data: { codeName: code.code_name, codeNameEng: code.code_name_eng || "", description: code.description || "", sortOrder: code.sort_order, isActive: checked ? "Y" : "N", }, }); } catch (error) { console.error("코드 활성 상태 변경 실패:", error); } }; return (
{code.code_value}
{code.description &&{code.description}
}