refactor(settings): improve directory configuration UI layout

- Rebrand "CC-Switch" to "CC Switch" across all UI text
- Separate CC Switch config directory into standalone section at top
- Update description to highlight cloud sync capability
- Remove redundant descriptions for Claude/Codex directory inputs
- Improve Chinese grammar for WSL configuration description
This commit is contained in:
Jason
2025-11-06 23:05:25 +08:00
parent 03e15916dd
commit dc79c31148
3 changed files with 79 additions and 50 deletions

View File

@@ -34,49 +34,78 @@ export function DirectorySettings({
const { t } = useTranslation();
return (
<section className="space-y-4">
<header className="space-y-1">
<h3 className="text-sm font-medium">
{t("settings.configDirectoryOverride")}
</h3>
<p className="text-xs text-muted-foreground">
{t("settings.configDirectoryDescription")}
</p>
</header>
<>
{/* CC Switch 配置目录 - 独立区块 */}
<section className="space-y-4">
<header className="space-y-1">
<h3 className="text-sm font-medium">{t("settings.appConfigDir")}</h3>
<p className="text-xs text-muted-foreground">
{t("settings.appConfigDirDescription")}
</p>
</header>
<DirectoryInput
label={t("settings.appConfigDir")}
description={t("settings.appConfigDirDescription")}
value={appConfigDir}
resolvedValue={resolvedDirs.appConfig}
placeholder={t("settings.browsePlaceholderApp")}
onChange={onAppConfigChange}
onBrowse={onBrowseAppConfig}
onReset={onResetAppConfig}
/>
<div className="flex items-center gap-2">
<Input
value={appConfigDir ?? resolvedDirs.appConfig ?? ""}
placeholder={t("settings.browsePlaceholderApp")}
className="font-mono text-xs"
onChange={(event) => onAppConfigChange(event.target.value)}
/>
<Button
type="button"
variant="outline"
size="icon"
onClick={onBrowseAppConfig}
title={t("settings.browseDirectory")}
>
<FolderSearch className="h-4 w-4" />
</Button>
<Button
type="button"
variant="outline"
size="icon"
onClick={onResetAppConfig}
title={t("settings.resetDefault")}
>
<Undo2 className="h-4 w-4" />
</Button>
</div>
</section>
<DirectoryInput
label={t("settings.claudeConfigDir")}
description={t("settings.claudeConfigDirDescription")}
value={claudeDir}
resolvedValue={resolvedDirs.claude}
placeholder={t("settings.browsePlaceholderClaude")}
onChange={(val) => onDirectoryChange("claude", val)}
onBrowse={() => onBrowseDirectory("claude")}
onReset={() => onResetDirectory("claude")}
/>
{/* Claude/Codex 配置目录 - 独立区块 */}
<section className="space-y-4">
<header className="space-y-1">
<h3 className="text-sm font-medium">
{t("settings.configDirectoryOverride")}
</h3>
<p className="text-xs text-muted-foreground">
{t("settings.configDirectoryDescription")}
</p>
</header>
<DirectoryInput
label={t("settings.codexConfigDir")}
description={t("settings.codexConfigDirDescription")}
value={codexDir}
resolvedValue={resolvedDirs.codex}
placeholder={t("settings.browsePlaceholderCodex")}
onChange={(val) => onDirectoryChange("codex", val)}
onBrowse={() => onBrowseDirectory("codex")}
onReset={() => onResetDirectory("codex")}
/>
</section>
<DirectoryInput
label={t("settings.claudeConfigDir")}
description={undefined}
value={claudeDir}
resolvedValue={resolvedDirs.claude}
placeholder={t("settings.browsePlaceholderClaude")}
onChange={(val) => onDirectoryChange("claude", val)}
onBrowse={() => onBrowseDirectory("claude")}
onReset={() => onResetDirectory("claude")}
/>
<DirectoryInput
label={t("settings.codexConfigDir")}
description={undefined}
value={codexDir}
resolvedValue={resolvedDirs.codex}
placeholder={t("settings.browsePlaceholderCodex")}
onChange={(val) => onDirectoryChange("codex", val)}
onBrowse={() => onBrowseDirectory("codex")}
onReset={() => onResetDirectory("codex")}
/>
</section>
</>
);
}