import { For, createSignal, onMount, Show } from 'solid-js' import { A, useLocation } from '@solidjs/router' import { IconBookmark, IconChecklist, IconFolder, IconHome, IconNotebook, IconSettings, IconVideo, IconFileText, IconChevronDown, IconTrash, IconUsers, IconBrain, IconSchool, IconChartLine, IconBrandGithub, IconClock, IconCalendar, IconMessageCircle, IconLogout, IconBuilding, IconPlus, IconX } from '@tabler/icons-solidjs' import { UpdateChecker } from '../ui/UpdateChecker' const navigation = [ { name: 'Home', href: '/app', icon: IconHome }, { name: 'Bookmarks', href: '/app/bookmarks', icon: IconBookmark }, { name: 'Tasks', href: '/app/tasks', icon: IconChecklist }, { name: 'Time Tracking', href: '/app/time-tracking', icon: IconClock }, { name: 'Calendar', href: '/app/calendar', icon: IconCalendar }, { name: 'Files', href: '/app/files', icon: IconFolder }, { name: 'Notes', href: '/app/notes', icon: IconNotebook }, { name: 'Messages', href: '/app/messages', icon: IconMessageCircle }, { name: 'YouTube', href: '/app/youtube', icon: IconVideo }, { name: 'Members', href: '/app/members', icon: IconUsers }, { name: 'Learning', href: '/app/learning-paths', icon: IconSchool }, { name: 'Stats', href: '/app/stats', icon: IconChartLine }, { name: 'GitHub', href: '/app/github', icon: IconBrandGithub }, { name: 'AI Assistant', href: '/app/chat', icon: IconBrain }, ] const mockWorkspaces = [ { id: '1', name: 'Trackeep Workspace', icon: IconFileText }, { id: '2', name: 'Personal Projects', icon: IconBuilding }, { id: '3', name: 'Team Collaboration', icon: IconUsers }, ] export interface SidebarProps { class?: string isOpen?: boolean onClose?: () => void } export function Sidebar(props: SidebarProps) { const location = useLocation() const [isWorkspaceDropdownOpen, setIsWorkspaceDropdownOpen] = createSignal(false) const [selectedWorkspace, setSelectedWorkspace] = createSignal(mockWorkspaces[0]) const isActive = (href: string) => { const currentPath = location.pathname if (href === '/app' && currentPath === '/app') return true return currentPath === href } const handleWorkspaceSelect = (workspace: typeof mockWorkspaces[0]) => { setSelectedWorkspace(workspace) setIsWorkspaceDropdownOpen(false) } const toggleWorkspaceDropdown = () => { setIsWorkspaceDropdownOpen(!isWorkspaceDropdownOpen()) } // Close dropdown when clicking outside onMount(() => { const handleClickOutside = (event: MouseEvent) => { const target = event.target if (!(target instanceof HTMLElement)) return if (!target.closest('#workspace-selector')) { setIsWorkspaceDropdownOpen(false) } } document.addEventListener('click', handleClickOutside) return () => document.removeEventListener('click', handleClickOutside) }) return ( <> {/* Mobile Close Button - Above sidebar */}
{/* Organization Selector */}
{/* Dropdown Menu */}
{(workspace) => ( )}
{/* Navigation */} {/* Bottom Navigation */}
{/* Update Checker */}
) }