docs(desktop): clarify login theme ownership
This commit is contained in:
1 parent
f50059e425
commit
3b6a5399e8
6 files changed
+17
-14
No files matched your search
@@ -8,11 +8,12 @@ const THEME_SOURCE_ATTRIBUTE = 'data-ds-theme-source'
|
||||
|
||||
/**
|
||||
* Watches `html[data-ds-theme-source]` and forwards each value to the main
|
||||
* process, which sets `nativeTheme.themeSource`. The macOS sidebar vibrancy
|
||||
* material then follows the app's theme preference instead of the OS
|
||||
* appearance while `system` keeps following the OS; the main process reads
|
||||
* the same value back as `shouldUseDarkColors` when it needs the resolved
|
||||
* palette for a Platform login link.
|
||||
* process, which sets `nativeTheme.themeSource`. Native chrome and renderer
|
||||
* `prefers-color-scheme` queries on every platform then follow the app's
|
||||
* theme preference instead of the OS appearance while `system` keeps
|
||||
* following the OS; the macOS sidebar vibrancy material is one such consumer.
|
||||
* The main process reads the same value back as `shouldUseDarkColors` when a
|
||||
* Platform login link needs the resolved palette.
|
||||
*/
|
||||
export function syncNativeTheme(): void {
|
||||
let sent: string | undefined
|
||||
|
||||
@@ -16,10 +16,12 @@ export const DARK_ATTRIBUTE = 'data-ds-dark-theme'
|
||||
|
||||
/**
|
||||
* Root attribute publishing the theme source (`light`, `dark`, or `system`)
|
||||
* for host shells that mirror it into native window chrome (the Electron
|
||||
* preload forwards it to `nativeTheme.themeSource` so macOS vibrancy follows
|
||||
* the app theme). `system` only when the preference is `system`; a fixed
|
||||
* preference (including registered theme ids) publishes its resolved scheme.
|
||||
* for host shells that mirror it into the native theme (the Electron preload
|
||||
* forwards it to `nativeTheme.themeSource`, so native chrome, renderer
|
||||
* `prefers-color-scheme` queries, and Platform login links follow the app
|
||||
* palette on every platform). `system` only when the preference is `system`;
|
||||
* a fixed preference (including registered theme ids) publishes its resolved
|
||||
* scheme.
|
||||
*/
|
||||
export const THEME_SOURCE_ATTRIBUTE = 'data-ds-theme-source'
|
||||
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/client/ui-settings-account/README.md
|
||||
README.md: 016d1161214cf5723de6d5d63dc54542b8382571
|
||||
README.zh.md: 56ff93217bf97126878a0c7d5fed889a5e3f56f2
|
||||
README.md: 27682d9fa145723019573d492bbc1627ed43d1be
|
||||
README.zh.md: 0fd64077f980482a31774d91fa62d349b0a6616f
|
||||
@@ -46,7 +46,7 @@ The Account section appears first in Settings only while signed in; it is hidden
|
||||
|
||||
The [credentials subsystem](../../../docs/subsystems/credentials.md) owns storage APIs; the [architecture](../../../docs/architecture.md) explains application composition.
|
||||
|
||||
Account login uses a dismissible dialog before the model onboarding credential editor. The dialog uses a compact, right-aligned action row with the primary action last. The sidebar displays the profile name, falling back to the server-masked phone number or email when the name is absent; it stays blank while the profile is loading. Dialog copy and the sidebar account label are not text-selectable; the copy-link button remains available and restores its label two seconds after each successful copy. Clipboard failures show Copy failed on the link for two seconds without interrupting sign-in. Waiting shows a copyable authorization link and a loading indicator; timeout and failure require an explicit retry. The dialog's Copy sign-in link and the Settings Open link append the resolved Desktop palette as `theme=light` or `theme=dark` from the live theme snapshot, so both routes reach the Platform page in the current application theme without touching the stored preference. Sign-in failures render in that dialog; the launcher's inline failure line reports only a failed sign-out. Closing a waiting dialog cancels its Host attempt. The sidebar can reopen the same API-key editor through the settings coordinator.
|
||||
Account login uses a dismissible dialog before the model onboarding credential editor. The dialog uses a compact, right-aligned action row with the primary action last. The sidebar displays the profile name, falling back to the server-masked phone number or email when the name is absent; it stays blank while the profile is loading. Dialog copy and the sidebar account label are not text-selectable; the copy-link button remains available and restores its label two seconds after each successful copy. Clipboard failures show Copy failed on the link for two seconds without interrupting sign-in. Waiting shows a copyable authorization link and a loading indicator; timeout and failure require an explicit retry. The dialog's Copy sign-in link and the Settings Open link append the resolved Desktop palette as `theme=light` or `theme=dark` from the live theme snapshot, so both routes reach the Platform page in the current application theme without changing the theme preference Platform has saved. Sign-in failures render in that dialog; the launcher's inline failure line reports only a failed sign-out. Closing a waiting dialog cancels its Host attempt. The sidebar can reopen the same API-key editor through the settings coordinator.
|
||||
|
||||
A terminal account-state stream failure appears in the sign-in dialog or Account settings. Plugin unload suppresses late failure reports.
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ Desktop 的用量和充值操作在 48px 返回栏下方打开隔离的原生 Pl
|
||||
|
||||
[凭证子系统](../../../docs/subsystems/credentials.zh.md)定义存储接口;[架构](../../../docs/architecture.zh.md)说明应用组合。
|
||||
|
||||
账号登录在模型引导的凭证编辑器之前显示可关闭的弹窗。弹窗底部采用紧凑的右对齐横排操作,主操作位于末尾。侧边栏优先显示昵称,缺少昵称时显示服务端返回的脱敏手机号或邮箱;资料加载期间保持留空。 弹窗文字和侧边栏账号状态文字不可选中,复制登录链接按钮始终可用,并在每次复制成功两秒后恢复原文案。剪贴板失败时,链接原位显示“复制失败”两秒,不中断登录。等待状态提供可复制的授权链接和加载图标;超时和失败均须用户手动重试。弹窗的“复制登录链接”和设置页的“打开”链接会从当前主题快照读取 Desktop 生效配色,追加 `theme=light` 或 `theme=dark`,使两条路径都以当前应用主题打开 Platform 页面,且不写入已保存的主题偏好。登录失败在该弹窗内呈现;侧边栏入口的内联失败提示仅用于退出登录失败。关闭等待弹窗会取消对应 Host 登录流程。侧边栏通过设置协调器重新打开同一个 API Key 编辑器。
|
||||
账号登录在模型引导的凭证编辑器之前显示可关闭的弹窗。弹窗底部采用紧凑的右对齐横排操作,主操作位于末尾。侧边栏优先显示昵称,缺少昵称时显示服务端返回的脱敏手机号或邮箱;资料加载期间保持留空。 弹窗文字和侧边栏账号状态文字不可选中,复制登录链接按钮始终可用,并在每次复制成功两秒后恢复原文案。剪贴板失败时,链接原位显示“复制失败”两秒,不中断登录。等待状态提供可复制的授权链接和加载图标;超时和失败均须用户手动重试。弹窗的“复制登录链接”和设置页的“打开”链接会从当前主题快照读取 Desktop 生效配色,追加 `theme=light` 或 `theme=dark`,使两条路径都以当前应用主题打开 Platform 页面,且不改变 Platform 已保存的主题偏好。登录失败在该弹窗内呈现;侧边栏入口的内联失败提示仅用于退出登录失败。关闭等待弹窗会取消对应 Host 登录流程。侧边栏通过设置协调器重新打开同一个 API Key 编辑器。
|
||||
|
||||
账户状态流的终止错误会显示在登录对话框或账户设置中。插件卸载后不再报告延迟到达的错误。
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ export interface AccountSectionInjected {
|
||||
/** Desktop-only commands; absent in ordinary browsers. */
|
||||
platform?: PlatformBridge
|
||||
|
||||
/** Host-owned account stream and theme snapshots observed through framework hooks. */
|
||||
/** Account stream owned by the Host and theme snapshots published by the renderer, observed through framework hooks. */
|
||||
hooks: {
|
||||
account: HostObservable<AccountSnapshot>
|
||||
/** Palette the Platform login pages follow. */
|
||||
|
||||
Reference in new issue
Block a user