import { useState, useEffect } from 'react' import ProjectCard from './ProjectCard' import ProjectModal from './ProjectModal' import Button from '../UI/Button' import AgendaPanel from '../Calendar/AgendaPanel' import useProjectStore from '../../store/useProjectStore' import useUIStore from '../../store/useUIStore' import { deleteProject } from '../../api/projects' export default function ProjectList({ onRegisterNewProject }) { const { projects, removeProject } = useProjectStore() const { sidebarTab, setSidebarTab } = useUIStore() const [showModal, setShowModal] = useState(false) const [editing, setEditing] = useState(null) useEffect(() => { onRegisterNewProject?.(() => setShowModal(true)) }, [onRegisterNewProject]) const handleEdit = (p) => { setEditing(p); setShowModal(true) } const handleDelete = async (p) => { if (window.confirm(`Delete "${p.name}" and all its deliverables?`)) { await deleteProject(p.id); removeProject(p.id) } } const handleClose = () => { setShowModal(false); setEditing(null) } return (
{/* Header — taller to give logo more presence */}
FabDash logo { e.target.style.display = 'none' }} />
FABDASH
{/* Tab toggle */}
{[['projects','Projects'],['agenda','Upcoming']].map(([key, label]) => ( ))}
{/* Content */}
{sidebarTab === 'projects' ? (
{projects.length === 0 ? (

No projects yet

Press N or click + Project

) : ( projects.map(p => ( )) )}
) : ( )}
{/* Keyboard shortcut legend */}
{[['N','New'],['B','Sidebar'],['← →','Navigate'],['T','Today']].map(([key, desc]) => ( {key} {desc} ))}
) }