feat(ui): shareholder-grade redesign + live "Your Club" account panel
- New theme.rs design system: palette, embedded fonts, egui Visuals/Style, card()/status_pill() helpers. - Branded hero header (OF monogram), left nav rail, card-based dashboard, console-style Logs, themed Config tab, window/taskbar icon. - New account_monitor.rs: background AccountMonitor (mirrors HealthMonitor, 5s non-blocking poll) driving a live "Your Club" dashboard card (club name/abbr, manager, COINS hero number, level + XP bar, unopened packs, funds) with loading/offline/error states. - account_sync.rs/app.rs/config.rs/main.rs wired to the monitor + theme. All existing launch/health/preflight/service/config logic preserved.
This commit is contained in:
@@ -318,6 +318,17 @@ impl LauncherConfig {
|
||||
}
|
||||
}
|
||||
|
||||
/// The config the account monitor should poll with, or None when no server
|
||||
/// is configured. Returns a clone so the background thread owns its own
|
||||
/// snapshot and never races the UI's live config.
|
||||
pub fn account_target(&self) -> Option<LauncherConfig> {
|
||||
if self.openfut_server_host.trim().is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(self.clone())
|
||||
}
|
||||
}
|
||||
|
||||
/// Build the shared [`ServerConfig`] from the launcher's configured server
|
||||
/// host + destination ports. This is the single place the launcher turns UI
|
||||
/// fields into the canonical config consumed by the hook.
|
||||
|
||||
Reference in New Issue
Block a user