From c5316bf336d158af2150969f7a9f6939cda0470f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Tue, 21 Apr 2026 15:59:55 +0400 Subject: [PATCH] Refactor settings, DRY up everything --- app/components/app-menu/settings.gjs | 52 +++++--- app/components/app-menu/settings/apis.gjs | 16 +-- app/components/app-menu/settings/map-ui.gjs | 16 +-- app/components/app-menu/settings/nostr.gjs | 11 +- app/services/settings.js | 134 ++++++++++++-------- 5 files changed, 122 insertions(+), 107 deletions(-) diff --git a/app/components/app-menu/settings.gjs b/app/components/app-menu/settings.gjs index 50654b9..67e32c7 100644 --- a/app/components/app-menu/settings.gjs +++ b/app/components/app-menu/settings.gjs @@ -1,25 +1,41 @@ +import Component from '@glimmer/component'; import { on } from '@ember/modifier'; +import { action } from '@ember/object'; +import { service } from '@ember/service'; import Icon from '#components/icon'; import AppMenuSettingsMapUi from './settings/map-ui'; import AppMenuSettingsApis from './settings/apis'; import AppMenuSettingsNostr from './settings/nostr'; - + @action + updateSetting(key, event) { + let value = event.target.value; + if (value === 'true') value = true; + if (value === 'false') value = false; + + this.settings.update(key, value); + } + + +} diff --git a/app/components/app-menu/settings/apis.gjs b/app/components/app-menu/settings/apis.gjs index 44a1cb5..8231b34 100644 --- a/app/components/app-menu/settings/apis.gjs +++ b/app/components/app-menu/settings/apis.gjs @@ -1,23 +1,13 @@ import Component from '@glimmer/component'; import { on } from '@ember/modifier'; import { service } from '@ember/service'; -import { action } from '@ember/object'; +import { fn } from '@ember/helper'; import Icon from '#components/icon'; import eq from 'ember-truth-helpers/helpers/eq'; export default class AppMenuSettingsApis extends Component { @service settings; - @action - updateApi(event) { - this.settings.updateOverpassApi(event.target.value); - } - - @action - updatePhotonApi(event) { - this.settings.updatePhotonApi(event.target.value); - } -