"use client"; import { useState, useEffect } from "react"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Switch } from "@/components/ui/switch"; import { useFlowEditorStore } from "@/lib/stores/flowEditorStore"; import { LogNodeData } from "@/types/node-editor"; import { FileText, Info, AlertTriangle, AlertCircle } from "lucide-react"; interface LogPropertiesProps { nodeId: string; data: LogNodeData; } const LOG_LEVELS = [ { value: "debug", label: "Debug", icon: Info, color: "text-blue-600" }, { value: "info", label: "Info", icon: Info, color: "text-green-600" }, { value: "warn", label: "Warning", icon: AlertTriangle, color: "text-yellow-600" }, { value: "error", label: "Error", icon: AlertCircle, color: "text-red-600" }, ]; export function LogProperties({ nodeId, data }: LogPropertiesProps) { const { updateNode } = useFlowEditorStore(); const [level, setLevel] = useState(data.level || "info"); const [message, setMessage] = useState(data.message || ""); const [includeData, setIncludeData] = useState(data.includeData ?? false); useEffect(() => { setLevel(data.level || "info"); setMessage(data.message || ""); setIncludeData(data.includeData ?? false); }, [data]); const handleApply = () => { updateNode(nodeId, { level: level as any, message, includeData, }); }; const selectedLevel = LOG_LEVELS.find((l) => l.value === level); const LevelIcon = selectedLevel?.icon || Info; return (
로그
setMessage(e.target.value)} placeholder="로그 메시지를 입력하세요" className="mt-1 text-sm" />

플로우 데이터를 로그에 포함합니다

{level}
{message || "메시지가 없습니다"}
{includeData &&
+ 플로우 데이터
}
); }