import { useRef, useCallback, useEffect } from 'react' import FileTree from '@/components/Sidebar/FileTree' import SettingsPanel from '@/components/Settings/SettingsPanel' import { useFilesStore } from '@/stores/useFilesStore' import { useTabsStore } from '@/stores/useTabsStore' import { useLayoutStore } from '@/stores/useLayoutStore' function NewFileIcon() { return ( ) } function NewFolderIcon() { return ( ) } function OpenFolderIcon() { return ( ) } export default function SidePanel() { const fileTree = useFilesStore((s) => s.fileTree) const rootPath = useFilesStore((s) => s.rootPath) const loading = useFilesStore((s) => s.loading) const openFolder = useFilesStore((s) => s.openFolder) const createFolder = useFilesStore((s) => s.createFolder) const createUntitledFile = useTabsStore((s) => s.createUntitledFile) const sidePanelWidth = useLayoutStore((s) => s.sidePanelWidth) const setSidePanelWidth = useLayoutStore((s) => s.setSidePanelWidth) const activeView = useLayoutStore((s) => s.activeView) const dragRef = useRef(false) const panelRef = useRef(null) const handleMouseDown = useCallback(() => { dragRef.current = true document.body.style.cursor = 'col-resize' document.body.style.userSelect = 'none' }, []) const handleMouseMove = useCallback((e: MouseEvent) => { if (!dragRef.current || !panelRef.current) return const rect = panelRef.current.getBoundingClientRect() const newWidth = e.clientX - rect.left setSidePanelWidth(newWidth) }, [setSidePanelWidth]) const handleMouseUp = useCallback(() => { dragRef.current = false document.body.style.cursor = '' document.body.style.userSelect = '' }, []) useEffect(() => { window.addEventListener('mousemove', handleMouseMove) window.addEventListener('mouseup', handleMouseUp) return () => { window.removeEventListener('mousemove', handleMouseMove) window.removeEventListener('mouseup', handleMouseUp) } }, [handleMouseMove, handleMouseUp]) return (
{activeView === 'search' ? 'SEARCH' : activeView === 'extensions' ? 'EXTENSIONS' : activeView === 'settings' ? 'SETTINGS' : 'EXPLORER'}
{activeView === 'explorer' && ( <> {rootPath && ( )} )}
{activeView === 'explorer' && ( <> {!rootPath && !loading && (

No folder open

)} {loading && (
Loading...
)} {rootPath && !loading && ( <>
{rootPath.split(/[\\/]/).pop()}
{fileTree.length > 0 ? ( ) : (
Empty directory
)} )} )} {activeView === 'search' && (
Search coming soon
)} {activeView === 'extensions' && (
Extensions coming soon
)} {activeView === 'settings' && ( )}
) }