diff --git a/app/shared/src/demo/dataMode.test.ts b/app/shared/src/demo/dataMode.test.ts index 0eb18cb47..24ef965cd 100644 --- a/app/shared/src/demo/dataMode.test.ts +++ b/app/shared/src/demo/dataMode.test.ts @@ -7,7 +7,6 @@ import { normalizeWorkbenchDataMode, readWorkbenchDataModeOverride, resolveWorkbenchDataMode, - workbenchDataModeDisplayLabel, workbenchDataModeLabel, writeWorkbenchDataModeOverride, } from './dataMode'; @@ -52,60 +51,47 @@ describe('normalizeWorkbenchDataMode', () => { expect(workbenchDataModeLabel('approved-real')).toBe('approved-real'); }); - it('exposes a single shared contract for UI status and data-source boundaries', () => { + it('exposes a single shared contract for runtime and evidence boundaries', () => { expect(getWorkbenchDataModeContract('mock')).toMatchObject({ mode: 'mock', statusLabel: 'mock', - displayLabel: 'Mock', - tone: 'amber', allowsMockData: true, allowsFixtureData: false, allowsDemoRuntimeFallback: true, allowsLocalEdgeAutoFallback: false, allowsHubData: false, - requiresHubAuthForWeb: false, requiresLocalEdgeForDesktop: false, isRealDataMode: false, - isStrictRealMode: false, }); expect(getWorkbenchDataModeContract('fixture')).toMatchObject({ mode: 'fixture', statusLabel: 'fixture', - displayLabel: 'Fixture', - tone: 'purple', allowsMockData: false, allowsFixtureData: true, allowsDemoRuntimeFallback: true, allowsLocalEdgeAutoFallback: false, allowsHubData: false, - requiresHubAuthForWeb: false, requiresLocalEdgeForDesktop: false, isRealDataMode: false, - isStrictRealMode: false, }); expect(getWorkbenchDataModeContract('approved-real')).toMatchObject({ mode: 'approved-real', statusLabel: 'approved-real', - displayLabel: 'Approved real', - tone: 'green', allowsMockData: false, allowsFixtureData: false, allowsDemoRuntimeFallback: false, allowsLocalEdgeAutoFallback: false, allowsHubData: true, - requiresHubAuthForWeb: true, requiresLocalEdgeForDesktop: true, isRealDataMode: true, - isStrictRealMode: true, }); }); it('keeps transient runtime states out of canonical data-mode labels', () => { expect(workbenchDataModeLabel('auto')).toBe('auto'); - expect(workbenchDataModeDisplayLabel('auto')).toBe('Auto'); expect(workbenchDataModeLabel('demo+edge')).toBe('auto'); - expect(workbenchDataModeDisplayLabel('mock (auto fallback)')).toBe('Auto'); + expect(workbenchDataModeLabel('mock (auto fallback)')).toBe('auto'); }); }); diff --git a/app/shared/src/demo/dataMode.ts b/app/shared/src/demo/dataMode.ts index a1017ef12..74ed3a383 100644 --- a/app/shared/src/demo/dataMode.ts +++ b/app/shared/src/demo/dataMode.ts @@ -15,31 +15,16 @@ export type WorkbenchDataMode = | 'observed' | 'approved-real'; -export type WorkbenchDataModeTone = - | 'neutral' - | 'amber' - | 'purple' - | 'cyan' - | 'green'; - export interface WorkbenchDataModeContract { mode: WorkbenchDataMode; statusLabel: WorkbenchDataMode; - displayLabel: 'Auto' | 'Mock' | 'Fixture' | 'Observed' | 'Approved real'; - tone: WorkbenchDataModeTone; - title: string; - description: string; - desktopLabel: string; - webLabel: string; allowsMockData: boolean; allowsFixtureData: boolean; allowsDemoRuntimeFallback: boolean; allowsLocalEdgeAutoFallback: boolean; allowsHubData: boolean; - requiresHubAuthForWeb: boolean; requiresLocalEdgeForDesktop: boolean; isRealDataMode: boolean; - isStrictRealMode: boolean; } export const WORKBENCH_DATA_MODE_STORAGE_KEY = 'agenthub.workbench.dataMode'; @@ -49,97 +34,57 @@ export const WORKBENCH_DATA_MODE_CONTRACTS: Record { // Verify the project page renders correctly with its heading. }); - it('renders the local data mode setting with mock and real-mode choices', () => { - window.localStorage.removeItem(WORKBENCH_DATA_MODE_STORAGE_KEY); - const platform = createMockPlatform({ - surface: 'desktop', - capabilities: { browserPreview: true }, - conversations: [{ id: 'builder', title: 'Builder', kind: 'direct' }], - }); - - render( - , - ); - - fireEvent.click(screen.getByRole('button', { name: '设置' })); - fireEvent.click(screen.getByRole('button', { name: '本地开发' })); - - expect(screen.getByText('数据模式')).toBeInTheDocument(); - expect(screen.getByText('Auto 可开发回退;Mock/Fixture 固定本地数据;Observed/Approved real 不回退。')).toBeInTheDocument(); - expect(screen.getAllByRole('button', { name: 'Auto' }).length).toBeGreaterThan(0); - expect(screen.getAllByRole('button', { name: 'Mock' }).length).toBeGreaterThan(0); - expect(screen.getAllByRole('button', { name: 'Fixture' }).length).toBeGreaterThan(0); - expect(screen.getAllByRole('button', { name: 'Observed' }).length).toBeGreaterThan(0); - expect(screen.getAllByRole('button', { name: 'Approved real' }).length).toBeGreaterThan(0); - expect(screen.getByRole('region', { name: '数据模式状态' })).toBeInTheDocument(); - expect(screen.getByText('Auto fallback')).toBeInTheDocument(); - expect(screen.getByText('Prefer real data, allow development fallback')).toBeInTheDocument(); - expect(screen.queryByText('Normal 只走真实数据')).not.toBeInTheDocument(); - - fireEvent.click(screen.getAllByRole('button', { name: 'Fixture' })[0]!); - expect(window.localStorage.getItem(WORKBENCH_DATA_MODE_STORAGE_KEY)).toBe('fixture'); - expect(screen.getByText('Fixture data')).toBeInTheDocument(); - expect(screen.getByText('Pinned shared workbench fixture')).toBeInTheDocument(); - - fireEvent.click(screen.getAllByRole('button', { name: 'Approved real' })[0]!); - expect(window.localStorage.getItem(WORKBENCH_DATA_MODE_STORAGE_KEY)).toBe('approved-real'); - expect(screen.getAllByText('Approved real').length).toBeGreaterThan(0); - expect(screen.getByText('Approved real Hub / Edge data only')).toBeInTheDocument(); - }); - it('opens the account profile popover from the global rail', () => { const platform = createMockPlatform({ surface: 'desktop', diff --git a/app/workbench/src/mockData.ts b/app/workbench/src/mockData.ts index 9323e4f6a..ac168db2a 100644 --- a/app/workbench/src/mockData.ts +++ b/app/workbench/src/mockData.ts @@ -265,7 +265,6 @@ export const WORKBENCH_MOCK_SETTINGS_DEFAULTS = { deepThinkingDisplay: '摘要', permissions: { Read: '允许', Write: '需确认', Shell: '需确认', Browser: '允许' }, vitePreviewUrl: 'http://127.0.0.1:5176/desktop/', - dataMode: '自动', composerSubmitBehavior: 'Enter 发送', workspacePath: 'D:\\Code\\TokenDance\\tokendance-design', targetProjectPath: 'D:\\Code\\TokenDance\\AgentHub', diff --git a/app/workbench/src/pages/settings/SettingsPaneHelpers.test.ts b/app/workbench/src/pages/settings/SettingsPaneHelpers.test.ts index e590bf87f..05342eb06 100644 --- a/app/workbench/src/pages/settings/SettingsPaneHelpers.test.ts +++ b/app/workbench/src/pages/settings/SettingsPaneHelpers.test.ts @@ -1,8 +1,6 @@ import { describe, expect, it } from 'vitest'; import { STATE_PREVIEW_SPECS, - dataModeStatusDetail, - dataModeStatusLabel, formatLocalCliItemDescription, formatLocalCliItemValue, joinClassNames, @@ -12,23 +10,6 @@ import { } from './SettingsPaneHelpers'; describe('SettingsPaneHelpers', () => { - it('labels data-mode status heads by contract mode', () => { - expect(dataModeStatusLabel('auto')).toBe('Auto fallback'); - expect(dataModeStatusLabel('approved-real')).toBe('Approved real'); - expect(dataModeStatusLabel('real')).toBe('Approved real'); - expect(dataModeStatusLabel('mock')).toBe('Mock data'); - expect(dataModeStatusLabel('fixture')).toBe('Fixture data'); - expect(dataModeStatusLabel('observed')).toBe('Observed data'); - }); - - it('exposes shared data-mode contract fields for the status panel', () => { - expect(dataModeStatusDetail('mock')).toMatchObject({ - mode: 'mock', - displayLabel: 'Mock', - desktopLabel: '5173: demo transcript', - webLabel: '5174: demo transcript', - }); - }); it('formats local CLI discovery row description and value', () => { expect( diff --git a/app/workbench/src/pages/settings/SettingsPaneHelpers.ts b/app/workbench/src/pages/settings/SettingsPaneHelpers.ts index 96655b338..e4fba8e01 100644 --- a/app/workbench/src/pages/settings/SettingsPaneHelpers.ts +++ b/app/workbench/src/pages/settings/SettingsPaneHelpers.ts @@ -1,27 +1,14 @@ import type { DesignNavIconName } from '../../designIcons'; -import { getWorkbenchDataModeContract } from '@shared/demo'; import type { LocalCliDiscoveryItem } from '@shared/platform'; import type { StatePanelKind } from './types'; /* ═══════════════════════════════════════════════════════════════════════ SettingsPaneHelpers — pure residual slices from SettingsPanes (#686). - Data-mode labels, CLI discovery meta lines, state-panel icon/class + CLI discovery meta lines, state-panel icon/class packing, and state preview specs. No React / no intentional UX change. ═══════════════════════════════════════════════════════════════════════ */ -/** Status-head label for the data-mode contract panel. */ -export function dataModeStatusLabel(mode: string): string { - const detail = getWorkbenchDataModeContract(mode); - if (detail.mode === 'auto') return 'Auto fallback'; - if (detail.mode === 'approved-real') return 'Approved real'; - return `${detail.displayLabel} data`; -} - -/** Shared contract fields used by DataModeStatus. */ -export function dataModeStatusDetail(mode: string) { - return getWorkbenchDataModeContract(mode); -} /** CLI discovery row description: version · path. */ export function formatLocalCliItemDescription(item: Pick): string { diff --git a/app/workbench/src/pages/settings/SettingsPaneParts.test.tsx b/app/workbench/src/pages/settings/SettingsPaneParts.test.tsx new file mode 100644 index 000000000..f8532fd4c --- /dev/null +++ b/app/workbench/src/pages/settings/SettingsPaneParts.test.tsx @@ -0,0 +1,80 @@ +// SettingsPaneParts behavior (#shadow coverage): the data-mode status card +// was removed in the data-mode surface shrink, which also deleted the only +// test that mounted this file. These live leaves (CLI discovery, state +// preview, agent deep-link) are still rendered by the settings UI, so their +// direct behavior stays asserted here. No DataMode UI is re-added. +import "@testing-library/jest-dom/vitest"; +import { fireEvent, render, screen } from "@testing-library/react"; +import { describe, expect, it, vi } from "vitest"; +import type { LocalCliDiscoveryManifest } from "@shared/platform"; +import { + AgentConfigLink, + LocalCliDiscoveryStatus, + StatePreviewSection, +} from "./SettingsPaneParts"; + +const cliManifest: LocalCliDiscoveryManifest = { + mode: "no-spend-discovery", + readinessManifest: "/tmp/agenthub/readiness.md", + readinessScript: "/usr/local/bin/agenthub read", + items: [ + { id: "codex", name: "Codex CLI", installed: true, version: "1.2.3", path: "/usr/bin/codex", noSpend: true }, + { id: "claude-code", name: "Claude Code", installed: false, version: null, path: "/usr/bin/claude", noSpend: false }, + ], +}; + +describe("SettingsPaneParts live leaves", () => { + it("LocalCliDiscoveryStatus renders manifest meta and per-item rows", () => { + render(); + + expect(screen.getByText("CLI 诊断")).toBeInTheDocument(); + expect(screen.getByText("发现模式")).toBeInTheDocument(); + expect(screen.getByText("no-spend-discovery")).toBeInTheDocument(); + expect(screen.getByText("就绪 manifest")).toBeInTheDocument(); + expect(screen.getByText("/tmp/agenthub/readiness.md")).toBeInTheDocument(); + expect(screen.getByText("就绪脚本")).toBeInTheDocument(); + expect(screen.getByText("/usr/local/bin/agenthub read")).toBeInTheDocument(); + + expect(screen.getByText("Codex CLI")).toBeInTheDocument(); + expect(screen.getByText("version 1.2.3 · /usr/bin/codex")).toBeInTheDocument(); + expect(screen.getByText("installed · no-spend")).toBeInTheDocument(); + + expect(screen.getByText("Claude Code")).toBeInTheDocument(); + expect(screen.getByText("version unknown · /usr/bin/claude")).toBeInTheDocument(); + expect(screen.getByText("missing · requires approval")).toBeInTheDocument(); + }); + + it("AgentConfigLink renders its surface and invokes onOpen on click", () => { + const onOpen = vi.fn(); + render( + , + ); + + expect(screen.getByRole("region", { name: "打开 Agent 配置" })).toBeInTheDocument(); + expect(screen.getByText("打开配置")).toBeInTheDocument(); + expect(screen.getByText("前往 Agent 配置文件夹")).toBeInTheDocument(); + + fireEvent.click(screen.getByRole("button", { name: "打开" })); + expect(onOpen).toHaveBeenCalledTimes(1); + }); + + it("StatePreviewSection renders the design-system state grid with disabled panels", () => { + render(); + + expect(screen.getByText("Design System")).toBeInTheDocument(); + expect(screen.getByText("新建文档")).toBeInTheDocument(); + expect(screen.getByText("请求权限")).toBeInTheDocument(); + expect(screen.getByText("返回项目")).toBeInTheDocument(); + + const previewButtons = screen.getAllByText(/新建文档|请求权限|返回项目/); + previewButtons.forEach((node) => { + expect(node).toBeDisabled(); + }); + }); +}); diff --git a/app/workbench/src/pages/settings/SettingsPaneParts.tsx b/app/workbench/src/pages/settings/SettingsPaneParts.tsx index 6dbd6c2a1..48e1005df 100644 --- a/app/workbench/src/pages/settings/SettingsPaneParts.tsx +++ b/app/workbench/src/pages/settings/SettingsPaneParts.tsx @@ -14,8 +14,6 @@ import { } from './shared'; import { STATE_PREVIEW_SPECS, - dataModeStatusDetail, - dataModeStatusLabel, formatLocalCliItemDescription, formatLocalCliItemValue, joinClassNames, @@ -24,50 +22,16 @@ import { } from './SettingsPaneHelpers'; import type { StatePanelKind } from './types'; import { useTranslation } from 'react-i18next'; -import { CHATVIEW_I18N_NAMESPACE } from '@shared/chatview/i18n/resources'; import { SHARED_WORKBENCH_I18N_NAMESPACE } from '@shared/i18n'; /* ═══════════════════════════════════════════════════════════════════════ SettingsPaneParts — presentational residual slices from SettingsPanes (#686). - Data-mode / CLI discovery / state-panel leaves and agent-config link. + CLI discovery / state-panel leaves and agent-config link. CSS stays on SettingsPage.module.css. No intentional UX change. ═══════════════════════════════════════════════════════════════════════ */ -/* ── Data mode status ── */ - -export function DataModeStatus({ - mode, -}: { - mode: string; -}): React.ReactElement { - const { t } = useTranslation(CHATVIEW_I18N_NAMESPACE); - const detail = dataModeStatusDetail(mode); - const label = dataModeStatusLabel(mode); - - return ( -
-
- {label} -
- {detail.title} -

{detail.description}

-
-
-
Desktop
-
{detail.desktopLabel}
-
-
-
Web
-
{detail.webLabel}
-
-
-
- ); -} /* ── Local CLI discovery ── */ diff --git a/app/workbench/src/pages/settings/SettingsPanes.tsx b/app/workbench/src/pages/settings/SettingsPanes.tsx index d9ea3daed..614cc455b 100644 --- a/app/workbench/src/pages/settings/SettingsPanes.tsx +++ b/app/workbench/src/pages/settings/SettingsPanes.tsx @@ -8,7 +8,6 @@ import { useTranslation } from 'react-i18next'; import { CHATVIEW_I18N_NAMESPACE } from '@shared/chatview/i18n/resources'; import { SHARED_WORKBENCH_I18N_NAMESPACE } from '@shared/i18n'; import { - DataModeControl, SettingPath, SettingSegment, SettingSwitch, @@ -18,7 +17,6 @@ import { } from './shared'; import { AgentConfigLink, - DataModeStatus, LocalCliDiscoveryStatus, StatePreviewSection, } from './SettingsPaneParts'; @@ -41,7 +39,6 @@ import type { KeyboardShortcutGroup } from '@shared/utils/keyboardShortcuts'; import styles from './SettingsPanes.module.css'; export { - DataModeStatus, LocalCliDiscoveryStatus, StatePanel, StatePreviewSection, @@ -190,15 +187,11 @@ export function LocalDevPane(props: SettingsPageProps): React.ReactElement { props.onChangeSetting('hrmOverlayEnabled', v)} /> - - props.onChangeSetting('dataMode', v)} /> - props.onChangeSetting('composerSubmitBehavior', v)} /> - diff --git a/app/workbench/src/pages/settings/index.ts b/app/workbench/src/pages/settings/index.ts index 0e416135a..d3e8ac322 100644 --- a/app/workbench/src/pages/settings/index.ts +++ b/app/workbench/src/pages/settings/index.ts @@ -6,7 +6,6 @@ export { AgentDefaultsPane, LocalDevPane, StatesPane, - DataModeStatus, LocalCliDiscoveryStatus, StatePanel, StatePreviewSection, @@ -26,7 +25,6 @@ export { SettingsSection, SettingsRow, SettingSegment, - DataModeControl, SettingSwitch, SettingValue, SettingPath, diff --git a/app/workbench/src/pages/settings/shared.tsx b/app/workbench/src/pages/settings/shared.tsx index 2027bc3fe..b55771244 100644 --- a/app/workbench/src/pages/settings/shared.tsx +++ b/app/workbench/src/pages/settings/shared.tsx @@ -10,7 +10,6 @@ import { DESIGN_NAV_GLYPH_STROKE_WIDTH, type DesignNavIconName, } from '../../designIcons'; -import { getWorkbenchDataModeContract } from '@shared/demo'; import { Switch } from '@shared/ui'; import styles from '../SettingsPage.module.css'; import { useTranslation } from 'react-i18next'; @@ -140,23 +139,6 @@ export function SettingSegment({ options, active, onChange, disabled = false }: ); } -/* ── Data mode segmented control ── */ - -interface DataModeControlProps { - active: string; - onChange: (value: string) => void; -} - -export function DataModeControl({ active, onChange }: DataModeControlProps): React.ReactElement { - const normalized = getWorkbenchDataModeContract(active).displayLabel; - return ( - - ); -} /* ── Switch ── */ diff --git a/app/workbench/src/pages/settings/types.ts b/app/workbench/src/pages/settings/types.ts index 20d05164a..f604dd703 100644 --- a/app/workbench/src/pages/settings/types.ts +++ b/app/workbench/src/pages/settings/types.ts @@ -52,8 +52,6 @@ export interface SettingsPageProps { permissions: Record; /** Local Vite preview URL. */ vitePreviewUrl: string; - /** Frontend data mode for Desktop/Web preview. */ - dataMode: string; /** Composer keyboard submit behavior. */ composerSubmitBehavior: string; /** Local workspace path. */ diff --git a/app/workbench/src/settingsTypes.ts b/app/workbench/src/settingsTypes.ts index 204161ba7..756aada48 100644 --- a/app/workbench/src/settingsTypes.ts +++ b/app/workbench/src/settingsTypes.ts @@ -50,7 +50,6 @@ export const ALL_SETTINGS_KEYS: readonly string[] = [ /** Keys that are local-only (localStorage, not sent to backend). */ export const LOCAL_ONLY_KEYS = [ - 'dataMode', 'composerSubmitBehavior', 'vitePreviewUrl', 'workspacePath', diff --git a/app/workbench/src/useWorkbenchSettingsRoute.test.ts b/app/workbench/src/useWorkbenchSettingsRoute.test.ts index 20613bd35..c37c9919b 100644 --- a/app/workbench/src/useWorkbenchSettingsRoute.test.ts +++ b/app/workbench/src/useWorkbenchSettingsRoute.test.ts @@ -1,10 +1,6 @@ // real_tested=true import { act, renderHook } from '@testing-library/react'; import { beforeEach, describe, expect, it, vi } from 'vitest'; -import { - WORKBENCH_DATA_MODE_STORAGE_KEY, - readWorkbenchDataModeOverride, -} from '@shared/demo/dataMode'; import type { SettingsPort } from '@shared/platform/types'; import { WORKBENCH_MOCK_SETTINGS_DEFAULTS } from './mockData'; import { createSettingsService } from './settingsService'; @@ -109,7 +105,6 @@ describe('useWorkbenchSettingsRoute without a settingsService', () => { expect(result.current.settingsErrorKind).toBeNull(); expect(result.current.settings).toEqual(createSettingsDefaults()); expect(result.current.settings.theme).toBe('浅色'); - expect(result.current.settings.dataMode).toBe('Auto'); expect(result.current.settings.composerSubmitBehavior).toBe('Enter 发送'); expect(result.current.settings.permissions.Read).toBe('允许'); expect(result.current.settings.stateStrategies.empty).toBe(true); @@ -173,16 +168,6 @@ describe('useWorkbenchSettingsRoute without a settingsService', () => { expect(result.current.settings.stateStrategies.missing).toBe(true); }); - it('persists dataMode changes to the localStorage override', () => { - const { result } = renderHook(() => useWorkbenchSettingsRoute({})); - - act(() => { - result.current.handleSettingChange('dataMode', '模拟'); - }); - expect(result.current.settings.dataMode).toBe('模拟'); - expect(window.localStorage.getItem(WORKBENCH_DATA_MODE_STORAGE_KEY)).toBe('mock'); - expect(readWorkbenchDataModeOverride()).toBe('mock'); - }); it('persists composerSubmitBehavior changes to localStorage', () => { const { result } = renderHook(() => useWorkbenchSettingsRoute({})); @@ -197,13 +182,11 @@ describe('useWorkbenchSettingsRoute without a settingsService', () => { expect(readComposerSubmitBehavior()).toBe('ctrl-enter-send'); }); - it('seeds defaults from localStorage overrides', () => { - window.localStorage.setItem(WORKBENCH_DATA_MODE_STORAGE_KEY, 'fixture'); + it('seeds composer defaults from localStorage override', () => { window.localStorage.setItem(WORKBENCH_COMPOSER_SUBMIT_BEHAVIOR_KEY, 'ctrl-enter-send'); const { result } = renderHook(() => useWorkbenchSettingsRoute({})); - expect(result.current.settings.dataMode).toBe('Fixture'); expect(result.current.settings.composerSubmitBehavior).toBe('Ctrl+Enter 发送'); }); @@ -280,17 +263,6 @@ describe('useWorkbenchSettingsRoute with a settingsService', () => { ); }); - it('persists dataMode to both localStorage and the service when present', () => { - const service = createFakeSettingsService(WORKBENCH_MOCK_SETTINGS_DEFAULTS); - const { result } = renderHook(() => useWorkbenchSettingsRoute({ settingsService: service })); - - act(() => { - result.current.handleSettingChange('dataMode', '模拟'); - }); - expect(result.current.settings.dataMode).toBe('模拟'); - expect(service.write).toHaveBeenCalledWith('dataMode', '模拟'); - expect(window.localStorage.getItem(WORKBENCH_DATA_MODE_STORAGE_KEY)).toBe('mock'); - }); it('picks up external service writes via subscription', () => { const service = createFakeSettingsService({ density: '标准' }); diff --git a/app/workbench/src/useWorkbenchSettingsRoute.ts b/app/workbench/src/useWorkbenchSettingsRoute.ts index 1bea2980d..7bf8f5296 100644 --- a/app/workbench/src/useWorkbenchSettingsRoute.ts +++ b/app/workbench/src/useWorkbenchSettingsRoute.ts @@ -1,11 +1,5 @@ import { useCallback, useEffect, useState } from 'react'; -import { - isWorkbenchRealDataMode, - normalizeWorkbenchDataMode, - readWorkbenchDataModeOverride, - workbenchDataModeDisplayLabel, - writeWorkbenchDataModeOverride, -} from '@shared/demo'; +import { isWorkbenchRealDataMode } from '@shared/demo'; import { composerSubmitBehaviorFromLabel, composerSubmitBehaviorLabel, @@ -38,13 +32,6 @@ export interface WorkbenchSettingsRoute { hasSettingsService: boolean; } -function persistDataModeLabel(value: string): void { - writeWorkbenchDataModeOverride(normalizeWorkbenchDataMode(value)); -} - -function dataModeLabel(): string { - return workbenchDataModeDisplayLabel(readWorkbenchDataModeOverride()); -} function isRouteRealDataMode(value: string | undefined): boolean { return isWorkbenchRealDataMode(value); @@ -57,7 +44,6 @@ function persistedComposerSubmitBehaviorLabel(): string { export function createSettingsDefaults(): WorkbenchSettingsValues { return { ...WORKBENCH_MOCK_SETTINGS_DEFAULTS, - dataMode: dataModeLabel(), composerSubmitBehavior: persistedComposerSubmitBehaviorLabel(), }; } @@ -123,9 +109,6 @@ export function useWorkbenchSettingsRoute({ }, [settingsService, syncSettingsServiceState]); function handleSettingChange(key: string, value: string | boolean): void { - if (key === 'dataMode' && typeof value === 'string') { - persistDataModeLabel(value); - } if (key === 'composerSubmitBehavior' && typeof value === 'string') { writeComposerSubmitBehavior(composerSubmitBehaviorFromLabel(value)); }