import React, { useState, useEffect, useRef } from 'react'; const COLOURS = ['#3d3a79', '#2d6a4f', '#7b2d8b', '#c0392b', '#d4800a', '#1a6b8a']; export default function ProjectModal({ project, mode, onSave, onDelete, onClose }) { const [name, setName] = useState(project?.name ?? ''); const [description, setDescription] = useState(project?.description ?? ''); const [colour, setColour] = useState(project?.colour ?? COLOURS[0]); const [systemPrompt, setSystemPrompt] = useState(project?.system_prompt ?? ''); const inputRef = useRef(null); useEffect(() => { if (mode !== 'confirm-delete') inputRef.current?.focus(); }, [mode]); function handleSubmit() { const trimmed = name.trim(); if (!trimmed) return; onSave({ name: trimmed, description: description.trim() || null, colour, icon: null, isolated: 1, system_prompt: systemPrompt.trim() || null, }); onClose(); } function handleKeyDown(e) { if (e.key === 'Escape') onClose(); // Don't submit on Enter — textarea fields make Enter ambiguous } return (
Are you sure you want to delete{' '} {project.name}? Sessions in this project will not be deleted.
Overrides the global system prompt for conversations in this project. Leave blank to use the global default.