import { Panel, PanelGroup } from 'react-resizable-panels' import { FC } from 'react' import { HorizontalResizeHandle } from '../resize/horizontal-resize-handle' import classNames from 'classnames' import { useLayoutContext } from '@/shared/context/layout-context' import EditorNavigationToolbar from '@/features/ide-react/components/editor-navigation-toolbar' import ChatPane from '@/features/chat/components/chat-pane' import { HorizontalToggler } from '@/features/ide-react/components/resize/horizontal-toggler' import { HistorySidebar } from '@/features/ide-react/components/history-sidebar' import { HistoryProvider } from '@/features/history/context/history-context' import History from '@/features/ide-react/components/history' import EditorSidebar from '@/features/ide-react/components/editor-sidebar' import { EditorPane } from '@/features/ide-react/components/editor/editor-pane' import { useFileTree } from '@/features/ide-react/hooks/use-file-tree' import { useTranslation } from 'react-i18next' import { useSidebarPane } from '@/features/ide-react/hooks/use-sidebar-pane' import { useChatPane } from '@/features/ide-react/hooks/use-chat-pane' import { EditorAndPdf } from '@/features/ide-react/components/editor-and-pdf' export const MainLayout: FC = () => { const { view } = useLayoutContext() const { isOpen: sidebarIsOpen, setIsOpen: setSidebarIsOpen, fixedPanelRef: sidebarPanelRef, handleLayout: handleSidebarLayout, togglePane: toggleSidebar, handlePaneExpand: handleSidebarExpand, handlePaneCollapse: handleSidebarCollapse, resizing: sidebarResizing, setResizing: setSidebarResizing, } = useSidebarPane() const { isOpen: chatIsOpen, fixedPanelRef: chatPanelRef, handleLayout: handleChatLayout, resizing: chatResizing, setResizing: setChatResizing, } = useChatPane() const { selectedEntityCount, openEntity, openDocId, handleFileTreeInit, handleFileTreeSelect, handleFileTreeDelete, } = useFileTree() const { t } = useTranslation() // keep the editor pane open const editorPane = openDocId ? ( ) : null return (
{/* sidebar */} {view === 'history' && } {view === 'history' ? ( ) : ( )} {chatIsOpen && ( <> {/* chat */} )}
) }