'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import Link from 'next/link' import { ArrowLeft, Pin, Lock } from 'lucide-react' import { createKbEntry, updateKbEntry } from '@/lib/actions' import { toast } from 'sonner' interface Props { entry?: any member: any } export default function KbEntryEditor({ entry, member }: Props) { const router = useRouter() const isEdit = !!entry const [title, setTitle] = useState(entry?.title ?? '') const [content, setContent] = useState(entry?.content ?? '') const [area, setArea] = useState(entry?.area ?? '') const [visibility, setVisibility] = useState(entry?.visibility ?? 'all_members') const [isPinned, setIsPinned] = useState(entry?.is_pinned ?? false) const [isProcess, setIsProcess] = useState(entry?.tags?.includes('process') ?? false) const [saving, setSaving] = useState(false) async function handleSave(e: React.FormEvent) { e.preventDefault() if (!title.trim() || !content.trim()) return setSaving(true) const tags = isProcess ? ['process'] : [] let result if (isEdit) { result = await updateKbEntry(entry.id, { title, content, area, visibility, is_pinned: isPinned, tags }) } else { result = await createKbEntry({ title, content, area, visibility, is_pinned: isPinned, tags }) } setSaving(false) if ('error' in result && result.error) { toast.error(result.error) return } toast.success(isEdit ? 'Entry updated' : 'Entry created') router.push('/ops') } return (