fix(profiles): use camelCase keys for current profile ids in frontend

This commit is contained in:
Jason
2026-07-04 23:23:25 +08:00
parent 754af2cc31
commit 22159430c6
2 changed files with 18 additions and 3 deletions
+8 -1
View File
@@ -41,6 +41,13 @@ import {
} from "@/lib/query/profiles";
import { ProfileManageDialog } from "./ProfileManageDialog";
import { APP_PROFILE_SCOPE, hasScopeSnapshot } from "./scope";
import type { CurrentProfileIds, ProfileScope } from "@/lib/api/profiles";
const CURRENT_ID_KEY: Record<ProfileScope, keyof CurrentProfileIds> = {
claude: "claude",
"claude-desktop": "claudeDesktop",
codex: "codex",
};
interface ProfileSwitcherProps {
activeApp: AppId;
@@ -74,7 +81,7 @@ export function ProfileSwitcher({ activeApp }: ProfileSwitcherProps) {
}
const profiles = data?.profiles ?? [];
const currentId = data?.currentIds?.[scope] ?? null;
const currentId = data?.currentIds?.[CURRENT_ID_KEY[scope]] ?? null;
const currentProfile = profiles.find((p) => p.id === currentId);
const handleApply = (id: string) => {
+10 -2
View File
@@ -38,8 +38,16 @@ export interface Profile {
updatedAt?: number;
}
/** 每个分组当前激活的项目 id(未使用项目时为 null) */
export type CurrentProfileIds = Record<ProfileScope, string | null>;
/** 每个分组当前激活的项目 id(未使用项目时为 null)
*
* 注意:JSON key 是 camelCaseclaudeDesktop),与 ProfileScope 的 kebab-case
* 字符串不同——后者用于命令参数,前者用于响应字段。
*/
export interface CurrentProfileIds {
claude: string | null;
claudeDesktop: string | null;
codex: string | null;
}
export interface ProfilesResponse {
profiles: Profile[];