Refactoring how preferences classes provide access to fields inside

Instead of constantly implementing these weird methods to read or update
values, there will be fields inside the preferences which contain
methods to read or update them.
This commit is contained in:
koloml committed 2026-03-07 06:41:28 +04:00
1 parent dc29c6ca69
commit 9024883949
14 files changed
+188 -112

No files matched your search

+2 -2
View File
@@ -24,7 +24,7 @@ Promise.allSettled([
TaggingProfile.readAll().then(profiles => {
taggingProfiles.set(profiles);
}),
preferences.resolveActiveProfileId().then(activeProfileId => {
preferences.activeProfile.get().then(activeProfileId => {
activeTaggingProfile.set(activeProfileId);
})
]).then(() => {
@@ -40,7 +40,7 @@ Promise.allSettled([
activeTaggingProfile.subscribe(profileId => {
lastActiveProfileId = profileId;
void preferences.setActiveProfileId(profileId);
void preferences.activeProfile.set(profileId);
});
// Watch the existence of the active profile on every change.
+2 -2
View File
@@ -6,10 +6,10 @@ export const fullScreenViewerEnabled = writable(true);
const preferences = new MiscPreferences();
Promise.allSettled([
preferences.resolveFullscreenViewerEnabled().then(v => fullScreenViewerEnabled.set(v))
preferences.fullscreenViewer.get().then(v => fullScreenViewerEnabled.set(v))
]).then(() => {
fullScreenViewerEnabled.subscribe(value => {
void preferences.setFullscreenViewerEnabled(value);
void preferences.fullscreenViewer.set(value);
});
preferences.subscribe(settings => {
+2 -2
View File
@@ -7,12 +7,12 @@ const preferences = new TaggingProfilesPreferences();
Promise
.all([
preferences.resolveStripBlacklistedTags().then(v => stripBlacklistedTagsEnabled.set(v ?? true))
preferences.stripBlacklistedTags.get().then(v => stripBlacklistedTagsEnabled.set(v ?? true))
])
.then(() => {
preferences.subscribe(settings => {
stripBlacklistedTagsEnabled.set(typeof settings.stripBlacklistedTags === 'boolean' ? settings.stripBlacklistedTags : true);
});
stripBlacklistedTagsEnabled.subscribe(v => preferences.setStripBlacklistedTags(v));
stripBlacklistedTagsEnabled.subscribe(v => preferences.stripBlacklistedTags.set(v));
});
+6 -6
View File
@@ -9,21 +9,21 @@ export const shouldReplaceTextOfTagLinks = writable(true);
Promise
.allSettled([
preferences.resolveGroupSeparation().then(value => shouldSeparateTagGroups.set(value)),
preferences.resolveReplaceLinks().then(value => shouldReplaceLinksOnForumPosts.set(value)),
preferences.resolveReplaceLinkText().then(value => shouldReplaceTextOfTagLinks.set(value)),
preferences.groupSeparation.get().then(value => shouldSeparateTagGroups.set(value)),
preferences.replaceLinks.get().then(value => shouldReplaceLinksOnForumPosts.set(value)),
preferences.replaceLinkText.get().then(value => shouldReplaceTextOfTagLinks.set(value)),
])
.then(() => {
shouldSeparateTagGroups.subscribe(value => {
void preferences.setGroupSeparation(value);
void preferences.groupSeparation.set(value);
});
shouldReplaceLinksOnForumPosts.subscribe(value => {
void preferences.setReplaceLinks(value);
void preferences.replaceLinks.set(value);
});
shouldReplaceTextOfTagLinks.subscribe(value => {
void preferences.setReplaceLinkText(value);
void preferences.replaceLinkText.set(value);
});
preferences.subscribe(settings => {