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 { useDeleteRequest } from '../hooks/useDeleteRequest'; import { useSidebarWidth } from '../hooks/useSidebarWidth'; import { Dropdown, DropdownMenuTrigger } from './core/Dropdown'; import { Icon } from './core/Icon'; import { IconButton } from './core/IconButton'; import { HStack } from './core/Stacks'; import { WindowDragRegion } from './core/WindowDragRegion'; import { RequestPane } from './RequestPane'; import { ResponsePane } from './ResponsePane'; import { Sidebar } from './Sidebar'; import { WorkspaceDropdown } from './WorkspaceDropdown'; export default function Workspace() { const activeRequest = useActiveRequest(); const activeWorkspace = useActiveWorkspace(); const deleteRequest = useDeleteRequest(activeRequest?.id ?? null); 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}
null, leftSlot: , }, '-----', { label: 'Delete Request', onSelect: deleteRequest.mutate, leftSlot: , }, ]} >
); }