diff --git a/src-web/components/DialogContext.tsx b/src-web/components/DialogContext.tsx index bcfef1bf..4106de76 100644 --- a/src-web/components/DialogContext.tsx +++ b/src-web/components/DialogContext.tsx @@ -6,7 +6,7 @@ import { Dialog } from './core/Dialog'; type DialogEntry = { id: string; render: ({ hide }: { hide: () => void }) => React.ReactNode; -} & Pick; +} & Pick; interface State { dialogs: DialogEntry[]; diff --git a/src-web/components/EnvironmentActionsDropdown.tsx b/src-web/components/EnvironmentActionsDropdown.tsx index 6fe9c811..a6e30d40 100644 --- a/src-web/components/EnvironmentActionsDropdown.tsx +++ b/src-web/components/EnvironmentActionsDropdown.tsx @@ -27,7 +27,10 @@ export const EnvironmentActionsDropdown = memo(function EnvironmentActionsDropdo const showEnvironmentDialog = useCallback(() => { dialog.toggle({ id: 'environment-editor', - title: 'Manage Environments', + hideX: true, + noPadding: true, + size: 'lg', + className: 'h-[80vh]', render: () => , }); }, [dialog, activeEnvironment]); diff --git a/src-web/components/EnvironmentEditDialog.tsx b/src-web/components/EnvironmentEditDialog.tsx index 3465abc5..a121922d 100644 --- a/src-web/components/EnvironmentEditDialog.tsx +++ b/src-web/components/EnvironmentEditDialog.tsx @@ -1,7 +1,6 @@ import classNames from 'classnames'; import type { ReactNode } from 'react'; -import { useCallback, useMemo, useState } from 'react'; -import { useWindowSize } from 'react-use'; +import React, { useCallback, useMemo, useState } from 'react'; import { useActiveWorkspace } from '../hooks/useActiveWorkspace'; import { useCreateEnvironment } from '../hooks/useCreateEnvironment'; import { useDeleteEnvironment } from '../hooks/useDeleteEnvironment'; @@ -11,17 +10,19 @@ import { useUpdateEnvironment } from '../hooks/useUpdateEnvironment'; import { useUpdateWorkspace } from '../hooks/useUpdateWorkspace'; import type { Environment, Workspace } from '../lib/models'; import { Button } from './core/Button'; -import type { DropdownItem } from './core/Dropdown'; -import { Dropdown } from './core/Dropdown'; +import { ContextMenu } from './core/Dropdown'; import type { GenericCompletionConfig, GenericCompletionOption, } from './core/Editor/genericCompletion'; +import { Heading } from './core/Heading'; import { Icon } from './core/Icon'; import { IconButton } from './core/IconButton'; import { InlineCode } from './core/InlineCode'; import type { PairEditorProps } from './core/PairEditor'; import { PairEditor } from './core/PairEditor'; +import { Separator } from './core/Separator'; +import { SplitLayout } from './core/SplitLayout'; import { HStack, VStack } from './core/Stacks'; interface Props { @@ -36,9 +37,6 @@ export const EnvironmentEditDialog = function ({ initialEnvironment }: Props) { const createEnvironment = useCreateEnvironment(); const activeWorkspace = useActiveWorkspace(); - const windowSize = useWindowSize(); - const showSidebar = windowSize.width > 500; - const selectedEnvironment = useMemo( () => environments.find((e) => e.id === selectedEnvironmentId) ?? null, [environments, selectedEnvironmentId], @@ -50,60 +48,72 @@ export const EnvironmentEditDialog = function ({ initialEnvironment }: Props) { }; return ( -
- {showSidebar && ( -