Synchronized Settings #3473
No reviewers
Labels
No labels
BE Request
Backlog
Better behavior
Blocked by deps
Bug
Code Review
Discussion
Doing
Feature Request / Enhancement
In the shining bright future maybe
It's complicated
MS Edge
Mememoon (or other niche browsers)
Missing API
Missing feature
Missing l10n/i18n
NL1
NL2
NL4
Need to verify on develop
RELEASE BLOCKER
Reassign or Close
Refactor
Regression
Safari
To Do
User story
Waiting on godot
accessibility
better documentation
chore
confirmed
easy ticket
incident
l10n update
mastoapi
mobile
needs design
needs-info
needs-review
stupid
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pleroma/pleroma-fe!3473
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "setttingssync"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
d0c3ee8e2dtodb960cda58db960cda58to496099bb00Another considerations for local-only:
My personal preferences possibly better suited for "sync exclusions":
already implemented lol as it is my usecase as well
font overrides exist and are not synced
i think better to have them synced and if enough people complain about it we'll exclude them
882d5079b6tod881b92f86More settiongs made local-only, better fallback to defaults, import/export now works
@hj wrote in #3473 (comment):
I can't use overrides, because qtwebengine (meme browsers issue) probably doesn't implement the "installed fonts" permission.
It's more of an issue where I prefer the bold highlight, but I can't use it on the desktop so I have the yous turned on, but I don't need them on my phone and prefer the highlight instead. That's why it's in the personal preferences section, since I imagine barely anyone would have that problem.
EDIT:
Same with Cromite on Android btw, but that's unrelated to this PR
Also "show advanced settings" does not work on the current commit for this PR:
Devtools console output when clicking show advanced on local instance
sw.js:135 No serviceworker found! updateFocus @ sw.js:135 await in updateFocus (anonymous) @ after_store.js:535 ------------------ mention_link.js:104 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'lain') at Proxy.highlight (mention_link.js:104:54) at Proxy.classnames (mention_link.js:127:32) highlight @ mention_link.js:104 classnames @ mention_link.js:127 (anonymous) @ mention_link.vue:22 (anonymous) @ user_popover.vue:10 _sfc_render @ popover.vue:15 Promise.then setPreference @ sync_config.js:489 setSimplePrefAndSave @ sync_config.js:461 set @ settings_modal.js:231 _createVNode.onUpdate:modelValue._cache.._cache. @ settings_modal.vue:114 _createElementVNode.onChange._cache.._cache. @ checkbox.vue:19 ------------------ sync_config.js:149 Both sources have valid data, figuring things out... sync_config.js:154 Same version/timestamp on both sources, source of truth irrelevant sync_config.js:625 Migrating from old config sync_config.js:630 Already migrated Values: sync_config.js:665 Checking if data needs merging... sync_config.js:675 Data doesn't need merging ------------------ mention_link.js:104 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'lain') at Proxy.highlight (mention_link.js:104:54) at Proxy.classnames (mention_link.js:127:32) highlight @ mention_link.js:104 classnames @ mention_link.js:127 (anonymous) @ mention_link.vue:22 (anonymous) @ user_popover.vue:10 _sfc_render @ popover.vue:15 Promise.then initSyncConfig @ sync_config.js:700 await in initSyncConfig (anonymous) @ sync_config.js:717 Promise.then pushSyncConfig @ sync_config.js:716 setSimplePrefAndSave @ sync_config.js:462 set @ settings_modal.js:231 _createVNode.onUpdate:modelValue._cache.._cache. @ settings_modal.vue:114 _createElementVNode.onChange._cache.._cache. @ checkbox.vue:19current commit is very broken, i'm working on it
you should be able to manually enter font-family, there should be a keyboard button on font selector
Creating new word filters and saving existing ones is broken:
Creation
sw.js:135 No serviceworker found! updateFocus @ sw.js:135 await in updateFocus (anonymous) @ after_store.js:535 ---------------- chunk-LG6AQRJS.js?v=3545ee10:2365 Uncaught TypeError: Cannot read properties of undefined (reading 'length') at Proxy.createFilter (filtering_tab.js:199:39) at _createElementVNode.onClick._cache.._cache. (filtering_tab.vue:141:23) createFilter @ filtering_tab.js:199 _createElementVNode.onClick._cache.._cache. @ filtering_tab.vue:141Saving
sw.js:135 No serviceworker found! updateFocus @ sw.js:135 await in updateFocus (anonymous) @ after_store.js:535 ------------------------ chunk-LG6AQRJS.js?v=3545ee10:2365 Uncaught TypeError: this.setPrefAndSave is not a function at Proxy.saveFilter (filtering_tab.js:249:12) at onClick (filtering_tab.vue:320:27) saveFilter @ filtering_tab.js:249 onClick @ filtering_tab.vue:320nice catch
Also opening the mute menu from the 3-dot post extra actions button only closes the popup on mobile. And the attached mute options in settings don't seem to do anything except "Completely hide all muted posts". If they are local-only, they also don't have the monitor icon (no console output).
EDIT: Instance name in the top bar also stopped working.
yeah I know, i guess i'll fix it in this MR as well
nice catches, i really appreciate it since config permeates entirety of UI it's difficult to test everything.
@hj wrote in #3473 (comment):
If it is also broken in develop, which I didn't test, maybe fix that there in a different MR, if it is small enough. SPW is apparently running recent-ish develop, so moon might want to also merge that fix like the shoutbox one.
I tested "mute bot posts" and it worked, but I'll double-check the rest
From the timeline view, only the "Hide muted posts"/"Completely hide muted posts" button does anything. In the timeline view they don't do anything at all. And in the settings, they get (un)ticked but that's it and the wrench icon never shows.
They do all work on mobile though, except hiding previews.
Note: I didn't show it in the attached screen capture, but unticking "Completely hide all muted posts" doesn't fix any of the settings.
EDIT: It appears it's an issue with settings generally. Not all, but a lot of them do nothing and don't get saved. (you)s and avatars next to handles are another examples.
fixed "hide media" option, fixed custom filters also. Please, I'll need you to debug the issue you have with settings not saving.
Also fixed sw.js errors
fixed mute dropdown here #3486
can't reproduce
@hj wrote in #3473 (comment):
I suspect some corrupted state in local storage since they work fine in other session. Do you want me to back it up before I nuke it for possible future reference?
I'm also running a PR from BE that adds
cache-control: immutableheader to static files include FE files, but I don't think that's the issue since disabling browser cache and force reloading does not fix the issue. Besides that, the built FE files are also versioned with hashes.yeah backup would be good. I really need to write code to account for more broken states, it's a bit too fragile.
475103f221to8ee71cdfffI don't have the time to dig deeper with the local issue I had, but deleting
IndexedDB->localforage->keyvalueparis->pinia-local-local_configseems to have fixed it. I do have a full IndexedDB backup for later.@phnt i've added a framework to validate config, maybe it will help debugging and cleaning up invalid states
I think I just need to add it to log replay and persistence, right now it's only in setPreference.
@hj wrote in #3473 (comment):
Thanks, I'll see if something pops up in console after restoring indexedb.
Also syncing the FE language stopped working and I think it always ends up the browsers default language. The error gets thrown both when logged in and logged out.
Can you also send the backup to me directly?
I also realized that i need to migrate persistence data for SyncConfig because old persistence is still stored under ServerSideStorage
nevermind about persistence, it just wasn't working at all in when it was SSS lol
fixed language setting
Config validation errors from
pinia-local-local_config(long stacktraces):after the deleted `pinia-local-local_config` on fluffytail.org running current commit of this PR:
from IndexedDB backup made when mute settings weren't saving
Also instance panel and TOS stopped working resulting in no instance name shown in the top panel:
EDIT: Due to the muteFilters and muteWords errors, word filtering also stopped working.
fixed instance identity (name, tos, isp) stuff
fixed objects (theme3hacks, muteFilters etc)
...i think
fixed old config disappearing, split theme3hacks into separate fields (fontInterface, underlay etc)
Noticed that MRF transparency on the about page isn't working in this branch. But things relying on it like user tags are working.
TOS and instance name in bar works. Don't know you what you mean by isp.
Word filtering works and no logs in console, so I think this is fixed.
A new issue I noticed after merging the last commit batch is that the tab titles always change to
(<number of unread notifs>) PleromaFEwhen getting a new notif, or when loading FE with unread notifs. When loading FE with no unread notifs, the instance name is used. In dev server mode, the instance title is never used for tab title and instead always showslocalhost:8080/<location>.Both confirmed to work as expected on develop.
instance-specific panel