Commit Graph
15 Commits
Author SHA1 Message Date
Eduard Gert 0b5fa75549 lint and add frontend-ui workflow 2026-06-18 13:56:42 +02:00
Eduard Gert cc842f17d5 add eslint 2026-06-18 13:56:41 +02:00
Eduard Gert c2b43b9cf0 localize installer unknown-error fallback and abort debug bundle on unmount 2026-06-12 18:06:58 +02:00
Eduard Gert f8e3ac6d92 refactor, lint, cleanup 2026-06-09 16:31:52 +02:00
Eduard Gert b0d8ac6489 fix auto size detection 2026-05-29 17:21:45 +02:00
Eduard Gert 51b243bdfa remove unused stuff, refactor frontend folder structure 2026-05-28 16:26:13 +02:00
Eduard Gert 598fcbd817 remove unused lang icons, disable text selection 2026-05-22 15:59:27 +02:00
Eduard Gert 17a365926d update auto update wordings, add update available into ui 2026-05-22 13:04:04 +02:00
Eduard Gert df61f22d96 add error msg to profile context and auto update 2026-05-21 09:49:32 +02:00
Eduard Gert a7b26e3c0d add updating dialog 2026-05-20 16:20:40 +02:00
Eduard Gert 5bdccfe8f4 add i18n to frontend 2026-05-15 16:22:14 +02:00
Zoltan Papp 9d8eb76746 [client/ui] Replace update event fan-out with typed UpdateState API
The auto-update feature was driven by two narrow Wails events
(netbird:update:available and :progress) plus a SystemEvent-metadata
iteration on the React side. Both surfaces had to know the daemon
metadata schema (new_version_available, enforced, progress_window),
and the frontend had no pull endpoint to seed its state on mount.

Extract the state machine into a new client/ui/updater package, mirroring
how i18n and preferences are split between domain logic and a thin
services facade. The package owns the State type, the metadata-key
parsing, the mutex-guarded Holder, and the single netbird:update:state
event. services.Update keeps the daemon RPCs (Trigger, GetInstallerResult,
Quit) and gains GetState as a Wails pull endpoint.

Tray-side update behaviour moves out of tray.go into a dedicated
trayUpdater (tray_update.go): owns its menu item, OS notification,
click handler, and the /update window opener triggered by the
daemon's progress_window:show. tray.go drops three callbacks and four
fields, and reads hasUpdate through the updater.

Frontend ClientVersionContext now seeds from Update.GetState() and
subscribes to netbird:update:state; the status.events iteration and
metadata-key string literals are gone. UpdateAvailableBanner renders
only for the enforced && !installing branch and labels its action
"Install now"; UpdateVersionCard splits the install vs. download
branches by Enforced so the disabled flow routes to GitHub.
2026-05-15 13:31:17 +02:00
Eduard Gert 1c8a6e3798 wip 2026-05-13 10:11:38 +02:00
Eduard Gert c8e18585c6 add update context 2026-05-11 17:21:38 +02:00
Eduard Gert b5a970155b Merge branch 'ui-refactor' into ui-refactor-ui 2026-05-11 15:15:11 +02:00