fix(settings): properly save and clear configuration values

Backend:
- Replace dict mutation with dict replacement to fix SQLAlchemy JSON
  mutation tracking issue (config.config = {**config.config, **update_data})

Frontend:
- Send explicit null values instead of undefined so fields can be cleared
- Update UserConfigUpdate interface to accept null values
This commit is contained in:
Fusion
2026-05-20 15:17:33 +02:00
parent 294d02f9fb
commit d11b43b69f
3 changed files with 10 additions and 9 deletions
+5 -5
View File
@@ -9,11 +9,11 @@ export interface UserConfig {
}
export interface UserConfigUpdate {
default_editor?: string;
theme?: string;
git_user_name?: string;
git_user_email?: string;
last_session_id?: string;
default_editor?: string | null;
theme?: string | null;
git_user_name?: string | null;
git_user_email?: string | null;
last_session_id?: string | null;
}
export const getUserConfig = async (): Promise<UserConfig> => {
+3 -3
View File
@@ -46,9 +46,9 @@ export const SettingsPage = () => {
try {
const update: UserConfigUpdate = {
theme: config.theme,
default_editor: config.default_editor ?? undefined,
git_user_name: config.git_user_name ?? undefined,
git_user_email: config.git_user_email ?? undefined,
default_editor: config.default_editor,
git_user_name: config.git_user_name,
git_user_email: config.git_user_email,
};
console.log("Sending update:", update);
const updated = await updateUserConfig(update);