ProtonMail / WebClients

Monorepo hosting the proton web clients
GNU General Public License v3.0
4.27k stars 545 forks source link

Beta notification `useEarlyAccess` always shows when not using cookies (even if user opted-in) #259

Closed 4www closed 2 years ago

4www commented 2 years ago

Hello!

I've had to stop using the beta version of these apps for a visual reason,

Because have machines setup to not use cookies (it seems), the "beta notification" seems to always pops at the top of the screen Though I've selected to opt-in the beta, the app always prompts me to refresh the page or close the notification.

https://github.com/ProtonMail/WebClients/blob/8d7f8a902034405988bd70431c714e9fdbb37a1d/packages/components/containers/onboarding/BetaOnboardingModal.tsx#L5

https://github.com/ProtonMail/WebClients/blob/8d7f8a902034405988bd70431c714e9fdbb37a1d/packages/components/hooks/useEarlyAccess.ts#L43

I wonder why using cookies over local storage / session storage, to avoid this situation where the notification shows, when a user already opted-in the beta feature (not sure these features are opt-in/out).

Thanks!

vladimiry commented 2 years ago

@protonmail I'd really like a cookie/local-storage/session-storage like stuff is not used to save any user-specific state, but you keep it at the backend side (in the user's profile, ie in the database). The ElectronMail app by design uses any browser-specific stores in-memory mode only, so the browser-specific stores data gets dropped after the app gets restarted. For cookies I've implemented a custom proxy to store them (so beta flag related notification doesn't annoy app users), but would prefer to drop it.

mmso commented 2 years ago

Hi @hugurp @vladimiry! Our current development efforts are focused on supporting browser environments with storage support. Cookie support is an essential element to that end. The early access feature in particular is tightly coupled to our infrastructure setup which uses it to determine which build to serve to the user. Basing it off user settings would require a large change in making it aware of which user is requesting a build. This is not something we are looking to change at this point.