fix(gui): follow-ups for the feature-owned settings surfaces

The ui-layout apply bench provides a real LocaleService before the
theme plugin boots (ui-theme now injects slots/locale to register its
Appearance row); drop locale's unused clsx dependency.
This commit is contained in:
imccyu
2026-07-26 03:22:35 +08:00
parent 0c9f310008
commit c5d323e8e5
5 changed files with 11 additions and 7 deletions

View File

@@ -58,8 +58,5 @@
"scripts": { "scripts": {
"bundle": "tsdown", "bundle": "tsdown",
"watch": "tsdown --watch" "watch": "tsdown --watch"
},
"dependencies": {
"clsx": "^2.0.0"
} }
} }

View File

@@ -43,6 +43,7 @@
"react": "^18.2.0" "react": "^18.2.0"
}, },
"devDependencies": { "devDependencies": {
"@deepseek-ai/dsh-client-locale": "workspace:^",
"@deepseek-ai/dsh-client-runtime": "workspace:^", "@deepseek-ai/dsh-client-runtime": "workspace:^",
"@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^",
"@deepseek-ai/dsh-client-ui-theme": "workspace:^", "@deepseek-ai/dsh-client-ui-theme": "workspace:^",

View File

@@ -9,6 +9,7 @@
import { Context } from 'cordis' import { Context } from 'cordis'
import { describe, expect, it, vi } from 'vitest' import { describe, expect, it, vi } from 'vitest'
import { SlotsService } from '@deepseek-ai/dsh-client-runtime/client' import { SlotsService } from '@deepseek-ai/dsh-client-runtime/client'
import { LocaleService } from '@deepseek-ai/dsh-client-locale/client'
import { apply as themeApply, inject as themeInject, ThemeService } from '@deepseek-ai/dsh-client-ui-theme/client' import { apply as themeApply, inject as themeInject, ThemeService } from '@deepseek-ai/dsh-client-ui-theme/client'
import { apply, inject, LayoutService } from '@deepseek-ai/dsh-client-ui-layout/client' import { apply, inject, LayoutService } from '@deepseek-ai/dsh-client-ui-layout/client'
import { apply as nodeApply } from '@deepseek-ai/dsh-client-ui-layout' import { apply as nodeApply } from '@deepseek-ai/dsh-client-ui-layout'
@@ -17,6 +18,9 @@ import * as invariant from '@deepseek-ai/dsh-client-ui-layout/invariant'
async function bench() { async function bench() {
const ctx = new Context() const ctx = new Context()
const slotsFiber = ctx.plugin(SlotsService) const slotsFiber = ctx.plugin(SlotsService)
// Theme now injects ['slots', 'locale'] (it registers its Appearance
// settings row); seat a real locale service so the theme fiber activates.
ctx.provide('locale', new LocaleService(ctx))
await ctx.plugin({ inject: themeInject, apply: themeApply }).await() await ctx.plugin({ inject: themeInject, apply: themeApply }).await()
await slotsFiber.await() await slotsFiber.await()
return { ctx, slots: ctx.get('slots') as SlotsService } return { ctx, slots: ctx.get('slots') as SlotsService }

View File

@@ -11,6 +11,9 @@
{ {
"path": "../../../vendor/cordis" "path": "../../../vendor/cordis"
}, },
{
"path": "../locale"
},
{ {
"path": "../ui-slots" "path": "../ui-slots"
}, },

7
pnpm-lock.yaml generated
View File

@@ -747,10 +747,6 @@ importers:
version: 4.0.0-rc.7(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@vendor+loader) version: 4.0.0-rc.7(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@vendor+loader)
packages/client/locale: packages/client/locale:
dependencies:
clsx:
specifier: ^2.0.0
version: 2.1.1
devDependencies: devDependencies:
'@deepseek-ai/dsh-client-runtime': '@deepseek-ai/dsh-client-runtime':
specifier: workspace:^ specifier: workspace:^
@@ -859,6 +855,9 @@ importers:
packages/client/ui-layout: packages/client/ui-layout:
devDependencies: devDependencies:
'@deepseek-ai/dsh-client-locale':
specifier: workspace:^
version: link:../locale
'@deepseek-ai/dsh-client-runtime': '@deepseek-ai/dsh-client-runtime':
specifier: workspace:^ specifier: workspace:^
version: link:../runtime version: link:../runtime