"use client"; import React from "react"; import type { KnowledgeTag } from "@mosaic/shared"; import { EntryStatus, Visibility } from "@mosaic/shared"; interface EntryMetadataProps { title: string; status: EntryStatus; visibility: Visibility; selectedTags: string[]; availableTags: KnowledgeTag[]; onTitleChange: (title: string) => void; onStatusChange: (status: EntryStatus) => void; onVisibilityChange: (visibility: Visibility) => void; onTagsChange: (tags: string[]) => void; } /** * EntryMetadata - Title, tags, status, and visibility controls */ export function EntryMetadata({ title, status, visibility, selectedTags, availableTags, onTitleChange, onStatusChange, onVisibilityChange, onTagsChange, }: EntryMetadataProps) { const handleTagToggle = (tagId: string): void => { if (selectedTags.includes(tagId)) { onTagsChange(selectedTags.filter((id) => id !== tagId)); } else { onTagsChange([...selectedTags, tagId]); } }; return (
{/* Title */}
onTitleChange(e.target.value)} className="w-full px-3 py-2 border border-gray-300 dark:border-gray-700 rounded-md bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent" placeholder="Entry title..." required />
{/* Status and Visibility Row */}
{/* Status */}
{/* Visibility */}
{/* Tags */}
{availableTags.length > 0 ? ( availableTags.map((tag) => { const isSelected = selectedTags.includes(tag.id); return ( ); }) ) : (

No tags available. Create tags first.

)}
); }