From 3cb5cc096bda522e37b0f815a40fb64d4cde4e94 Mon Sep 17 00:00:00 2001 From: Matthew Raymer Date: Wed, 11 Jun 2025 05:19:15 +0000 Subject: [PATCH] refactor: use databaseUtil.updateDefaultSettings for feed filter settings - Replace direct platform service calls with databaseUtil.updateDefaultSettings - Remove manual SQL query construction in favor of centralized utility - Improve code consistency and maintainability - Add proper error handling through databaseUtil's built-in mechanisms - Remove unused PlatformServiceFactory import - Fix SQL syntax errors in clearAll and setAll methods (AND -> comma) - Ensure both SQLite and Dexie databases are updated consistently Improves: FeedFilters component architecture and error handling Fixes: isNearby and filterFeedByVisible settings not being saved properly --- src/components/FeedFilters.vue | 35 +++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/components/FeedFilters.vue b/src/components/FeedFilters.vue index 1a630621..2c274bde 100644 --- a/src/components/FeedFilters.vue +++ b/src/components/FeedFilters.vue @@ -104,7 +104,6 @@ import { USE_DEXIE_DB } from "@/constants/app"; import * as databaseUtil from "../db/databaseUtil"; import { MASTER_SETTINGS_KEY } from "../db/tables/settings"; import { db, retrieveSettingsForActiveAccount } from "../db/index"; -import { PlatformServiceFactory } from "@/services/PlatformServiceFactory"; @Component({ components: { @@ -143,19 +142,23 @@ export default class FeedFilters extends Vue { async toggleHasVisibleDid() { this.settingChanged = true; this.hasVisibleDid = !this.hasVisibleDid; - await db.settings.update(MASTER_SETTINGS_KEY, { + await databaseUtil.updateDefaultSettings({ filterFeedByVisible: this.hasVisibleDid, }); + + if (USE_DEXIE_DB) { + await db.settings.update(MASTER_SETTINGS_KEY, { + filterFeedByVisible: this.hasVisibleDid, + }); + } } async toggleNearby() { this.settingChanged = true; this.isNearby = !this.isNearby; - const platformService = PlatformServiceFactory.getInstance(); - await platformService.dbExec( - `UPDATE settings SET filterFeedByNearby = ? WHERE id = ?`, - [this.isNearby, MASTER_SETTINGS_KEY], - ); + await databaseUtil.updateDefaultSettings({ + filterFeedByNearby: this.isNearby, + }); if (USE_DEXIE_DB) { await db.settings.update(MASTER_SETTINGS_KEY, { @@ -169,11 +172,10 @@ export default class FeedFilters extends Vue { this.settingChanged = true; } - const platformService = PlatformServiceFactory.getInstance(); - await platformService.dbExec( - `UPDATE settings SET filterFeedByNearby = ? AND filterFeedByVisible = ? WHERE id = ?`, - [false, false, MASTER_SETTINGS_KEY], - ); + await databaseUtil.updateDefaultSettings({ + filterFeedByNearby: false, + filterFeedByVisible: false, + }); if (USE_DEXIE_DB) { await db.settings.update(MASTER_SETTINGS_KEY, { @@ -191,11 +193,10 @@ export default class FeedFilters extends Vue { this.settingChanged = true; } - const platformService = PlatformServiceFactory.getInstance(); - await platformService.dbExec( - `UPDATE settings SET filterFeedByNearby = ? AND filterFeedByVisible = ? WHERE id = ?`, - [true, true, MASTER_SETTINGS_KEY], - ); + await databaseUtil.updateDefaultSettings({ + filterFeedByNearby: true, + filterFeedByVisible: true, + }); if (USE_DEXIE_DB) { await db.settings.update(MASTER_SETTINGS_KEY, {