editor-sidebar.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import React from 'react'
  2. import { Panel, PanelGroup } from 'react-resizable-panels'
  3. import { VerticalResizeHandle } from '@/features/ide-react/components/resize/vertical-resize-handle'
  4. import { FileTree } from '@/features/ide-react/components/file-tree'
  5. import { FileTreeSelectHandler } from '@/features/ide-react/types/file-tree'
  6. type EditorSidebarProps = {
  7. shouldPersistLayout: boolean
  8. onFileTreeInit: () => void
  9. onFileTreeSelect: FileTreeSelectHandler
  10. }
  11. export default function EditorSidebar({
  12. shouldPersistLayout,
  13. onFileTreeInit,
  14. onFileTreeSelect,
  15. }: EditorSidebarProps) {
  16. return (
  17. <aside className="ide-react-placeholder-editor-sidebar">
  18. <PanelGroup
  19. autoSaveId={
  20. shouldPersistLayout ? 'ide-react-editor-sidebar-layout' : undefined
  21. }
  22. direction="vertical"
  23. >
  24. <Panel defaultSize={75} className="ide-react-file-tree-panel">
  25. <FileTree onInit={onFileTreeInit} onSelect={onFileTreeSelect} />
  26. </Panel>
  27. <VerticalResizeHandle />
  28. <Panel defaultSize={25}>File outline placeholder</Panel>
  29. </PanelGroup>
  30. </aside>
  31. )
  32. }