2026-04-16 08:46:03 -07:00
|
|
|
import type { ClaudeCodeSettings } from "../../lib/types";
|
2026-08-09 11:35:42 -07:00
|
|
|
import Modal from "../ui/Modal";
|
|
|
|
|
import Button from "../ui/Button";
|
|
|
|
|
import ClaudeCodeSettingsEditor from "./ClaudeCodeSettingsEditor";
|
2026-04-16 08:46:03 -07:00
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
|
settings: ClaudeCodeSettings | null;
|
|
|
|
|
disabled: boolean;
|
|
|
|
|
onSave: (settings: ClaudeCodeSettings | null) => Promise<void>;
|
|
|
|
|
onClose: () => void;
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-09 11:35:42 -07:00
|
|
|
/** Global Claude Code settings (Settings). Per-project lives in Config → Runtime. */
|
|
|
|
|
export default function ClaudeCodeSettingsModal({
|
|
|
|
|
settings,
|
|
|
|
|
disabled,
|
|
|
|
|
onSave,
|
|
|
|
|
onClose,
|
|
|
|
|
}: Props) {
|
2026-04-16 08:46:03 -07:00
|
|
|
return (
|
2026-08-09 11:35:42 -07:00
|
|
|
<Modal
|
|
|
|
|
title="Claude Code Settings"
|
|
|
|
|
onClose={onClose}
|
|
|
|
|
widthClassName="w-[34rem]"
|
|
|
|
|
footer={<Button onClick={onClose}>Close</Button>}
|
2026-04-16 08:46:03 -07:00
|
|
|
>
|
2026-08-09 11:35:42 -07:00
|
|
|
<ClaudeCodeSettingsEditor
|
|
|
|
|
settings={settings}
|
|
|
|
|
disabled={disabled}
|
|
|
|
|
disabledReason="Container must be stopped to change Claude Code settings."
|
|
|
|
|
onSave={async (next) => {
|
|
|
|
|
try {
|
|
|
|
|
await onSave(next);
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error("Failed to save Claude Code settings:", err);
|
|
|
|
|
}
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
</Modal>
|
2026-04-16 08:46:03 -07:00
|
|
|
);
|
|
|
|
|
}
|