layout-with-placeholders.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { useState } from 'react'
  2. import PlaceholderHeader from '@/features/ide-react/components/layout/placeholder/placeholder-header'
  3. import PlaceholderChat from '@/features/ide-react/components/layout/placeholder/placeholder-chat'
  4. import PlaceholderHistory from '@/features/ide-react/components/layout/placeholder/placeholder-history'
  5. import PlaceholderEditorMainContent from '@/features/ide-react/components/layout/placeholder/placeholder-editor-main-content'
  6. import MainLayout from '@/features/ide-react/components/layout/main-layout'
  7. export default function LayoutWithPlaceholders({
  8. shouldPersistLayout,
  9. }: {
  10. shouldPersistLayout: boolean
  11. }) {
  12. const [chatIsOpen, setChatIsOpen] = useState(false)
  13. const [historyIsOpen, setHistoryIsOpen] = useState(false)
  14. const [leftColumnDefaultSize, setLeftColumnDefaultSize] = useState(20)
  15. const headerContent = (
  16. <PlaceholderHeader
  17. chatIsOpen={chatIsOpen}
  18. setChatIsOpen={setChatIsOpen}
  19. historyIsOpen={historyIsOpen}
  20. setHistoryIsOpen={setHistoryIsOpen}
  21. />
  22. )
  23. const chatContent = <PlaceholderChat />
  24. const mainContent = historyIsOpen ? (
  25. <PlaceholderHistory
  26. shouldPersistLayout
  27. leftColumnDefaultSize={leftColumnDefaultSize}
  28. setLeftColumnDefaultSize={setLeftColumnDefaultSize}
  29. />
  30. ) : (
  31. <PlaceholderEditorMainContent
  32. shouldPersistLayout
  33. leftColumnDefaultSize={leftColumnDefaultSize}
  34. setLeftColumnDefaultSize={setLeftColumnDefaultSize}
  35. />
  36. )
  37. return (
  38. <MainLayout
  39. headerContent={headerContent}
  40. chatContent={chatContent}
  41. mainContent={mainContent}
  42. chatIsOpen={chatIsOpen}
  43. shouldPersistLayout={shouldPersistLayout}
  44. />
  45. )
  46. }