aboutsummaryrefslogtreecommitdiff
path: root/src/App.tsx
blob: d04b32825019fb0324ed4ded55038f4a0b7a7c68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import TitleBar from '@/components/TitleBar/TitleBar'
import ActivityBar from '@/components/ActivityBar/ActivityBar'
import SidePanel from '@/components/SidePanel/SidePanel'
import TabsBar from '@/components/TabsBar/TabsBar'
import Breadcrumbs from '@/components/Breadcrumbs/Breadcrumbs'
import WelcomeScreen from '@/components/Welcome/WelcomeScreen'
import YaceEditor from '@/components/Editor/YaceEditor'
import StatusBar from '@/components/StatusBar/StatusBar'
import CommandPalette from '@/components/CommandPalette/CommandPalette'
import ContextMenu from '@/components/ContextMenu/ContextMenu'
import Toasts from '@/components/Toasts/Toasts'
import { useKeyboard } from '@/hooks/useKeyboard'
import { useLayoutStore } from '@/stores/useLayoutStore'
import { useTabsStore } from '@/stores/useTabsStore'

export default function App() {
  useKeyboard()
  const sidePanelVisible = useLayoutStore((s) => s.sidePanelVisible)
  const activeView = useLayoutStore((s) => s.activeView)
  const activeTabId = useTabsStore((s) => s.activeTabId)

  return (
    <div className="h-screen w-screen flex flex-col overflow-hidden bg-editor-bg" onContextMenu={(e) => e.preventDefault()}>
      <TitleBar />
      <CommandPalette />
      <ContextMenu />
      <Toasts />
      <div className="flex flex-1 overflow-hidden">
        <ActivityBar />
        {sidePanelVisible && activeView && <SidePanel />}
        <div className="flex flex-col flex-1 overflow-hidden min-w-0">
          {activeTabId ? (
            <>
              <TabsBar />
              <Breadcrumbs />
              <YaceEditor />
            </>
          ) : (
            <WelcomeScreen />
          )}
        </div>
      </div>
      <StatusBar />
    </div>
  )
}