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:
@@ -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> => {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user