diff --git a/apps/yaak-client/components/EnvironmentEditDialog.tsx b/apps/yaak-client/components/EnvironmentEditDialog.tsx index f7faf6f8..ddce40b6 100644 --- a/apps/yaak-client/components/EnvironmentEditDialog.tsx +++ b/apps/yaak-client/components/EnvironmentEditDialog.tsx @@ -15,12 +15,15 @@ import { resolvedModelName } from '../lib/resolvedModelName'; import { showColorPicker } from '../lib/showColorPicker'; import { Banner } from './core/Banner'; import type { ContextMenuProps, DropdownItem } from './core/Dropdown'; +import { ContextMenu } from './core/Dropdown'; import { Icon } from '@yaakapp-internal/ui'; import { IconButton } from './core/IconButton'; import { IconTooltip } from './core/IconTooltip'; import { InlineCode } from './core/InlineCode'; import type { PairEditorHandle } from './core/PairEditor'; import { SplitLayout } from './core/SplitLayout'; +import { atomFamily } from 'jotai/utils'; +import { atomWithKVStorage } from '../lib/atoms/atomWithKVStorage'; import type { TreeNode } from './core/tree/common'; import type { TreeHandle, TreeProps } from './core/tree/Tree'; import { Tree } from './core/tree/Tree'; @@ -28,6 +31,11 @@ import { EnvironmentColorIndicator } from './EnvironmentColorIndicator'; import { EnvironmentEditor } from './EnvironmentEditor'; import { EnvironmentSharableTooltip } from './EnvironmentSharableTooltip'; +const collapsedFamily = atomFamily((treeId: string) => { + const key = ['env_collapsed', treeId ?? 'n/a']; + return atomWithKVStorage>(key, {}); +}); + interface Props { initialEnvironmentId: string | null; setRef?: (ref: PairEditorHandle | null) => void; @@ -292,6 +300,13 @@ function EnvironmentEditDialogSidebar({ [setSelectedEnvironmentId], ); + const renderContextMenuFn = useCallback['renderContextMenu']>>( + ({ items, position, onClose }) => ( + + ), + [], + ); + const tree = useAtomValue(treeAtom); return (