From 092d16d7ab5a64a55596af74899d2b3db4647310 Mon Sep 17 00:00:00 2001 From: imccyu <276526105+imccyu@users.noreply.github.com> Date: Tue, 8 Sep 2026 19:18:37 +0800 Subject: [PATCH] style(client): satisfy panel lint rules --- .../client/ui-layout/src/client/DocumentTitle.tsx | 2 +- .../client/ui-layout/tests/apply.client.spec.ts | 6 +++--- .../ui-layout/tests/document-title.client.spec.tsx | 14 +++++++------- packages/client/ui-sidebar/src/client/index.ts | 2 +- .../tests/pointer-scrollbars.client.spec.tsx | 3 ++- .../ui-sidebar/tests/sidebar-root.client.spec.tsx | 12 ++++++++---- 6 files changed, 22 insertions(+), 17 deletions(-) diff --git a/packages/client/ui-layout/src/client/DocumentTitle.tsx b/packages/client/ui-layout/src/client/DocumentTitle.tsx index 13663f53d1..69cd5f4cfe 100644 --- a/packages/client/ui-layout/src/client/DocumentTitle.tsx +++ b/packages/client/ui-layout/src/client/DocumentTitle.tsx @@ -16,7 +16,7 @@ export type DocumentTitleProps = Pick, 'useSessions' | 'use */ export function DocumentTitle({ useSessions, usePanelInfo, productTitle }: DocumentTitleProps): null { const showSessionTitle = usePanelInfo(info => info.activePanelId === null) - const title = useSessions(state => { + const title = useSessions((state) => { const current = state.current return !showSessionTitle || current === undefined ? undefined : state.byId[current]?.title }) diff --git a/packages/client/ui-layout/tests/apply.client.spec.ts b/packages/client/ui-layout/tests/apply.client.spec.ts index 87123fc922..94124c2805 100644 --- a/packages/client/ui-layout/tests/apply.client.spec.ts +++ b/packages/client/ui-layout/tests/apply.client.spec.ts @@ -23,7 +23,7 @@ beforeEach(() => { originalBodyStyle = document.body.getAttribute('style') originalDarkTheme = document.body.getAttribute('data-ds-dark-theme') originalThemeMetadata = [...document.head.querySelectorAll('meta[name="theme-color"]')] - originalThemeMetadata.forEach(node => { node.remove() }) + originalThemeMetadata.forEach((node) => { node.remove() }) vi.stubGlobal('innerWidth', 1920) }) @@ -35,7 +35,7 @@ afterEach(async () => { restoreAttribute(document.documentElement, 'style', originalRootStyle) restoreAttribute(document.body, 'style', originalBodyStyle) restoreAttribute(document.body, 'data-ds-dark-theme', originalDarkTheme) - document.head.querySelectorAll('meta[name="theme-color"]').forEach(node => { node.remove() }) + document.head.querySelectorAll('meta[name="theme-color"]').forEach((node) => { node.remove() }) document.head.append(...originalThemeMetadata) vi.unstubAllGlobals() } @@ -65,7 +65,7 @@ async function bench() { await slotsFiber.await() const slots = ctx.get('slots') as SlotRegistry let host: SlotRendererHost | undefined - slots.install({ renderRoot: value => { host = value; return null } }) + slots.install({ renderRoot: (value) => { host = value; return null } }) const rendererHost = (): SlotRendererHost => { slots.renderSlot('root', {}) if (host === undefined) throw new Error('the root renderer did not receive its host') diff --git a/packages/client/ui-layout/tests/document-title.client.spec.tsx b/packages/client/ui-layout/tests/document-title.client.spec.tsx index 87def87bda..5c3184970f 100644 --- a/packages/client/ui-layout/tests/document-title.client.spec.tsx +++ b/packages/client/ui-layout/tests/document-title.client.spec.tsx @@ -38,11 +38,11 @@ describe('DocumentTitle', () => { document.title = 'stale title' const mounted = render() expect(document.title).toBe('DeepSeek Harness') - act(() => { sessions.update(state => { state.byId[sessionId]!.title = 'First title' }) }) + act(() => { sessions.update((state) => { state.byId[sessionId]!.title = 'First title' }) }) expect(document.title).toBe('First title — DeepSeek Harness') - act(() => { sessions.update(state => { state.byId[sessionId]!.title = 'Revised title' }) }) + act(() => { sessions.update((state) => { state.byId[sessionId]!.title = 'Revised title' }) }) expect(document.title).toBe('Revised title — DeepSeek Harness') - act(() => { sessions.update(state => { state.current = undefined }) }) + act(() => { sessions.update((state) => { state.current = undefined }) }) expect(document.title).toBe('DeepSeek Harness') mounted.unmount() expect(document.title).toBe('DeepSeek Harness') @@ -50,7 +50,7 @@ describe('DocumentTitle', () => { it('uses the localized product title supplied by the frame', () => { const { sessionId, sessions, props } = titleSources() - sessions.update(state => { state.byId[sessionId]!.title = 'First title' }) + sessions.update((state) => { state.byId[sessionId]!.title = 'First title' }) const mounted = render() expect(document.title).toBe('First title — DSH Local Build') mounted.unmount() @@ -59,12 +59,12 @@ describe('DocumentTitle', () => { it('keeps the product title across global panels and restores the latest Session title on return', () => { const { sessionId, sessions, panelInfo, props } = titleSources() - sessions.update(state => { state.byId[sessionId]!.title = 'Session title' }) + sessions.update((state) => { state.byId[sessionId]!.title = 'Session title' }) render() expect(document.title).toBe('Session title — Product') act(() => { panelInfo.set({ activePanelId: 'panel-a' as MainPanelId }) }) expect(document.title).toBe('Product') - act(() => { sessions.update(state => { state.byId[sessionId]!.title = 'Updated title' }) }) + act(() => { sessions.update((state) => { state.byId[sessionId]!.title = 'Updated title' }) }) expect(document.title).toBe('Product') act(() => { panelInfo.set({ activePanelId: 'panel-b' as MainPanelId }) }) expect(document.title).toBe('Product') @@ -75,7 +75,7 @@ describe('DocumentTitle', () => { it('uses the product title when the current Session row is not available', () => { const { sessions, props } = titleSources() - sessions.update(state => { state.byId = {}; state.ids = [] }) + sessions.update((state) => { state.byId = {}; state.ids = [] }) render() expect(document.title).toBe('Product') }) diff --git a/packages/client/ui-sidebar/src/client/index.ts b/packages/client/ui-sidebar/src/client/index.ts index 361ae4d612..6fc1bde880 100644 --- a/packages/client/ui-sidebar/src/client/index.ts +++ b/packages/client/ui-sidebar/src/client/index.ts @@ -52,7 +52,7 @@ export function apply(ctx: ClientContext): void { }).sort((a, b) => a.order - b.order) const previous = panels.getSnapshot() if (previous.length === next.length && previous.every((panel, index) => { - const candidate = next[index]! + const candidate = next[index] as SidebarPanelMetadata return panel.id === candidate.id && panel.order === candidate.order && panel.label === candidate.label })) return panels.set(next) diff --git a/packages/client/ui-sidebar/tests/pointer-scrollbars.client.spec.tsx b/packages/client/ui-sidebar/tests/pointer-scrollbars.client.spec.tsx index 065b9d2816..e010a3385f 100644 --- a/packages/client/ui-sidebar/tests/pointer-scrollbars.client.spec.tsx +++ b/packages/client/ui-sidebar/tests/pointer-scrollbars.client.spec.tsx @@ -41,7 +41,8 @@ function mountColumn(): { column: HTMLElement; quiet: () => boolean } { {}} usePanels={selector => selector([])} useResource={useResource} useWorkspaces={neverHook} + usePanelInfo={usePanelInfo} selectPanel={() => {}} usePanels={selector => selector([])} + useResource={useResource} useWorkspaces={neverHook} startSession={vi.fn()} toggleSidebar={vi.fn()} t={t} renderSlot={((_key: string, owner: SidebarSectionOwnerProps) =>
) as SidebarRootComponentProps['renderSlot']} diff --git a/packages/client/ui-sidebar/tests/sidebar-root.client.spec.tsx b/packages/client/ui-sidebar/tests/sidebar-root.client.spec.tsx index 7a689ad2fa..c7f890303f 100644 --- a/packages/client/ui-sidebar/tests/sidebar-root.client.spec.tsx +++ b/packages/client/ui-sidebar/tests/sidebar-root.client.spec.tsx @@ -46,7 +46,8 @@ function mountShell({ collapsed = false, width = 300 }: { collapsed?: boolean; w {}} usePanels={selector => selector([])} useResource={useResource} useWorkspaces={neverHook} + usePanelInfo={usePanelInfo} selectPanel={() => {}} usePanels={selector => selector([])} + useResource={useResource} useWorkspaces={neverHook} startSession={startSession} toggleSidebar={toggleSidebar} t={t} renderSlot={(( key: string, @@ -111,7 +112,8 @@ describe('SidebarRoot shell', () => { const { container } = render( {}} usePanels={selector => selector([])} useResource={useResource} useWorkspaces={neverHook} + usePanelInfo={usePanelInfo} selectPanel={() => {}} usePanels={selector => selector([])} + useResource={useResource} useWorkspaces={neverHook} startSession={vi.fn()} toggleSidebar={vi.fn()} t={t} renderSlot={((_key: string, _owner: unknown, options?: { fallback?: ReactNode }) => options?.fallback ?? null) as SidebarRootComponentProps['renderSlot']} @@ -130,7 +132,8 @@ describe('SidebarRoot shell', () => { render( {}} usePanels={selector => selector([])} useResource={useResource} useWorkspaces={neverHook} + usePanelInfo={usePanelInfo} selectPanel={() => {}} usePanels={selector => selector([])} + useResource={useResource} useWorkspaces={neverHook} startSession={vi.fn()} toggleSidebar={vi.fn()} t={t} renderSlot={((_key: string, _owner: unknown, options?: { fallback?: ReactNode }) => options?.fallback ?? null) as SidebarRootComponentProps['renderSlot']} @@ -144,7 +147,8 @@ describe('SidebarRoot shell', () => { render( {}} usePanels={selector => selector([])} useResource={useResource} useWorkspaces={neverHook} + usePanelInfo={usePanelInfo} selectPanel={() => {}} usePanels={selector => selector([])} + useResource={useResource} useWorkspaces={neverHook} startSession={vi.fn()} toggleSidebar={vi.fn()} t={t} renderSlot={((_key: string, _owner: unknown, options?: { fallback?: ReactNode }) => options?.fallback ?? null) as SidebarRootComponentProps['renderSlot']}