import classnames from 'classnames'; import { useMemo, useRef } from 'react'; import { useWindowSize } from 'react-use'; import { useActiveRequest } from '../hooks/useActiveRequest'; import { useActiveWorkspace } from '../hooks/useActiveWorkspace'; import { useSidebarWidth } from '../hooks/useSidebarWidth'; import { IconButton } from './core/IconButton'; import { HStack } from './core/Stacks'; import { WindowDragRegion } from './core/WindowDragRegion'; import { RequestPane } from './RequestPane'; import { RequestSettingsDropdown } from './RequestSettingsDropdown'; import { ResponsePane } from './ResponsePane'; import { Sidebar } from './Sidebar'; import { WorkspaceDropdown } from './WorkspaceDropdown'; export default function Workspace() { const activeRequest = useActiveRequest(); const activeWorkspace = useActiveWorkspace(); const mainContentRef = useRef(null); const windowSize = useWindowSize(); const sidebarWidth = useSidebarWidth(); const mainContentWidth = useMemo(() => { return mainContentRef.current?.getBoundingClientRect().width ?? 0; // TODO: Use container query subscription instead of minitoring everything }, [mainContentRef.current, windowSize, sidebarWidth.value]); const isSideBySide = mainContentWidth > 700; if (activeWorkspace == null) { return null; } return (
{activeRequest?.name}
); }