From 21e85cf965da735ffe540d20f145def237b372fd Mon Sep 17 00:00:00 2001 From: euzu Date: Fri, 29 Aug 2025 23:38:33 +0200 Subject: [PATCH] save config --- .../app/components/config/_config_view.scss | 1 - .../app/components/config/api_config_view.rs | 62 ------------------- .../components/config/video_config_view.rs | 7 ++- .../components/config/webui_config_view.rs | 5 +- 4 files changed, 7 insertions(+), 68 deletions(-) diff --git a/frontend/scss/app/components/config/_config_view.scss b/frontend/scss/app/components/config/_config_view.scss index 4e9553a04..ef93e8691 100644 --- a/frontend/scss/app/components/config/_config_view.scss +++ b/frontend/scss/app/components/config/_config_view.scss @@ -34,7 +34,6 @@ } &__toolbar { - margin-top: var(--padding-default); padding-top: var(--padding-default); display: flex; flex-flow: row; diff --git a/frontend/src/app/components/config/api_config_view.rs b/frontend/src/app/components/config/api_config_view.rs index 0485ba3f4..e080e8b65 100644 --- a/frontend/src/app/components/config/api_config_view.rs +++ b/frontend/src/app/components/config/api_config_view.rs @@ -32,13 +32,6 @@ pub fn ApiConfigView() -> Html { ApiConfigFormState { form: ConfigApiDto::default(), modified: false } }); - { - let on_form_change = config_view_ctx.on_form_change.clone(); - use_effect_with(form_state.clone(), move |state| { - on_form_change.emit(ConfigForm::Api(state.modified, state.form.clone())); - }); - } - { let on_form_change = config_view_ctx.on_form_change.clone(); let deps = (form_state.form.clone(), form_state.modified); @@ -48,61 +41,6 @@ pub fn ApiConfigView() -> Html { }); } - { - let on_form_change = config_view_ctx.on_form_change.clone(); - let deps = (form_state.form.clone(), form_state.modified); - use_effect_with(deps, move |(form, modified)| { - on_form_change.emit(ConfigForm::Api(*modified, form.clone())); - || () - }); - } - - { - let on_form_change = config_view_ctx.on_form_change.clone(); - let deps = (form_state.form.clone(), form_state.modified); - use_effect_with(deps, move |(form, modified)| { - on_form_change.emit(ConfigForm::Api(*modified, form.clone())); - || () - }); - } - - { - let on_form_change = config_view_ctx.on_form_change.clone(); - let deps = (form_state.form.clone(), form_state.modified); - use_effect_with(deps, move |(form, modified)| { - on_form_change.emit(ConfigForm::Api(*modified, form.clone())); - || () - }); - } - - { - let on_form_change = config_view_ctx.on_form_change.clone(); - let deps = (form_state.form.clone(), form_state.modified); - use_effect_with(deps, move |(form, modified)| { - on_form_change.emit(ConfigForm::Api(*modified, form.clone())); - || () - }); - } - - { - let on_form_change = config_view_ctx.on_form_change.clone(); - let deps = (form_state.form.clone(), form_state.modified); - use_effect_with(deps, move |(form, modified)| { - on_form_change.emit(ConfigForm::Api(*modified, form.clone())); - || () - }); - } - - { - let on_form_change = config_view_ctx.on_form_change.clone(); - let deps = (form_state.form.clone(), form_state.modified); - use_effect_with(deps, move |(form, modified)| { - on_form_change.emit(ConfigForm::Api(*modified, form.clone())); - || () - }); - } - - { let form_state = form_state.clone(); let api_config = config_ctx diff --git a/frontend/src/app/components/config/video_config_view.rs b/frontend/src/app/components/config/video_config_view.rs index 59666b5bd..4af3b04ad 100644 --- a/frontend/src/app/components/config/video_config_view.rs +++ b/frontend/src/app/components/config/video_config_view.rs @@ -87,10 +87,11 @@ pub fn VideoConfigView() -> Html { let on_form_change = config_view_ctx.on_form_change.clone(); let download_state = download_state.clone(); let video_state = video_state.clone(); - use_effect_with((video_state, download_state), move |(v, d)| { + use_effect_with((video_state.modified, download_state.modified, video_state, download_state), + move |(vm, dm, v, d)| { let mut form = v.form.clone(); - form.download = Some(d.form.clone()); - let modified = v.modified || d.modified; + form.download = if *dm { Some(d.form.clone()) } else { form.download }; + let modified = *vm || *dm; on_form_change.emit(ConfigForm::Video(modified, form)); }); } diff --git a/frontend/src/app/components/config/webui_config_view.rs b/frontend/src/app/components/config/webui_config_view.rs index b15353db2..61560659b 100644 --- a/frontend/src/app/components/config/webui_config_view.rs +++ b/frontend/src/app/components/config/webui_config_view.rs @@ -80,12 +80,13 @@ pub fn WebUiConfigView() -> Html { let auth_state = auth_state.clone(); let csp_state = csp_state.clone(); - use_effect_with((webui_state, auth_state, csp_state), move |(w, a, c)| { + use_effect_with((webui_state.modified, auth_state.modified, csp_state.modified, webui_state, auth_state, csp_state), + move |(wm, am, cm, w, a, c)| { let mut form = w.form.clone(); form.auth = Some(a.form.clone()); form.content_security_policy = Some(c.form.clone()); - let modified = w.modified || a.modified || c.modified; + let modified = *wm || *am || *cm; on_form_change.emit(ConfigForm::WebUi(modified, form)); }); }