Feature Title
Sync Dark Mode Theme Preference to Server/Database
Feature Description
First, I want to say thank you for including a dark mode option in OpenSign! As someone with very light-sensitive eyes, this feature is incredibly valuable to me.
Currently, the dark mode preference is stored only in the browser's localStorage (via the ThemeToggle component). This means that when a user logs in from a different browser or device, their theme preference is reset to the default light mode.
I'm proposing that the theme preference be persisted to the user's profile on the server (in the contracts_Users collection), similar to how other user preferences like DateFormat and Is12HourTime are already saved via the updatepreferences cloud function.
Current behavior:
- User selects dark mode → stored in
localStorage.setItem("theme", "dark")
- User logs in on different device → theme resets to light mode
- User clears browser data → theme preference is lost
Proposed behavior:
- User selects dark mode → saved to server AND localStorage
- User logs in on different device → theme is retrieved from server and applied
- Consistent experience across all browsers and devices
Feature Type
Importance
Medium
Additional Context
The existing updatepreferences cloud function in apps/OpenSignServer/cloud/parsefunction/Abortsigndocaliases.js already handles saving user preferences like DateFormat, Is12HourTime, and Language. Adding Theme to this existing pattern would provide a consistent approach to user preference management.
Technical reference:
- Theme toggle component:
apps/OpenSign/src/components/ThemeToggle.jsx
- Preferences update:
updatepreferences cloud function
This would be a great quality-of-life improvement for users who work across multiple devices or browsers.
Code of Conduct
Feature Title
Sync Dark Mode Theme Preference to Server/Database
Feature Description
First, I want to say thank you for including a dark mode option in OpenSign! As someone with very light-sensitive eyes, this feature is incredibly valuable to me.
Currently, the dark mode preference is stored only in the browser's localStorage (via the
ThemeTogglecomponent). This means that when a user logs in from a different browser or device, their theme preference is reset to the default light mode.I'm proposing that the theme preference be persisted to the user's profile on the server (in the
contracts_Userscollection), similar to how other user preferences likeDateFormatandIs12HourTimeare already saved via theupdatepreferencescloud function.Current behavior:
localStorage.setItem("theme", "dark")Proposed behavior:
Feature Type
Importance
Medium
Additional Context
The existing
updatepreferencescloud function inapps/OpenSignServer/cloud/parsefunction/Abortsigndocaliases.jsalready handles saving user preferences likeDateFormat,Is12HourTime, andLanguage. AddingThemeto this existing pattern would provide a consistent approach to user preference management.Technical reference:
apps/OpenSign/src/components/ThemeToggle.jsxupdatepreferencescloud functionThis would be a great quality-of-life improvement for users who work across multiple devices or browsers.
Code of Conduct