wulf-pulse/components/mobile
lorentz f32403ee35 fix(theme): guard ThemeSessionBridge sync with hasSynced ref
The dep-only fix wasn't enough: better-auth's useSession (nanostores) can
re-emit on focus / store refresh, transitioning session.user.id through
undefined and back. Each transition re-fires the effect, which then calls
setTheme(session.user.theme) with the stale cached value and reverts the
user's selection.

Track "have we synced this tab session" with a ref. After the first
successful sync, no subsequent effect fire can revert.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 21:58:35 -04:00
..
profile fix(theme): guard ThemeSessionBridge sync with hasSynced ref 2026-05-14 21:58:35 -04:00
AnalyzerFeedRow.tsx feat(06-02): add AnalyzerStagePips, ConfidenceBadge, AnalyzerRowSkeleton, AnalyzerFeedRow components 2026-05-03 21:30:17 -04:00
AnalyzerRowSkeleton.tsx feat(06-02): add AnalyzerStagePips, ConfidenceBadge, AnalyzerRowSkeleton, AnalyzerFeedRow components 2026-05-03 21:30:17 -04:00
AnalyzerStagePips.tsx feat(06-02): add AnalyzerStagePips, ConfidenceBadge, AnalyzerRowSkeleton, AnalyzerFeedRow components 2026-05-03 21:30:17 -04:00
BottomNav.tsx fix(04-01): restore phase 2/3 work lost by worktree soft-reset 2026-05-03 18:01:14 -04:00
ConfidenceBadge.tsx feat(06-02): add AnalyzerStagePips, ConfidenceBadge, AnalyzerRowSkeleton, AnalyzerFeedRow components 2026-05-03 21:30:17 -04:00
EngagementHoursSparkline.tsx feat(07-02): add 7 engagement components (chips, summary card, sparkline, sort, search, user row + skeleton) 2026-05-03 22:53:33 -04:00
EngagementPeriodChips.tsx feat(07-02): add 7 engagement components (chips, summary card, sparkline, sort, search, user row + skeleton) 2026-05-03 22:53:33 -04:00
EngagementProfileBreakdown.tsx feat(08-02): activity breakdown + recent entries + meetings + page wiring (Task 2) 2026-05-07 20:50:56 -04:00
EngagementProfileHeader.tsx feat(08-02): identity header + 2x2 metric grid + page wiring (Task 1b) 2026-05-07 20:48:24 -04:00
EngagementProfileMetricGrid.tsx feat(08-02): identity header + 2x2 metric grid + page wiring (Task 1b) 2026-05-07 20:48:24 -04:00
EngagementProfileSkeleton.tsx feat(08-02): page shell + skeleton + period/fetch wiring (Task 1a) 2026-05-07 20:46:28 -04:00
EngagementRecentEntries.tsx fix(08-02): coerce Postgres numeric hours_worked to Number before toFixed 2026-05-07 22:02:52 -04:00
EngagementRecentMeetings.tsx fix(08-02): coerce Postgres numeric hours_worked to Number before toFixed 2026-05-07 22:02:52 -04:00
EngagementSearchInput.tsx feat(07-02): add 7 engagement components (chips, summary card, sparkline, sort, search, user row + skeleton) 2026-05-03 22:53:33 -04:00
EngagementSortChips.tsx feat(07-02): add 7 engagement components (chips, summary card, sparkline, sort, search, user row + skeleton) 2026-05-03 22:53:33 -04:00
EngagementSummaryCard.tsx feat(07-02): add 7 engagement components (chips, summary card, sparkline, sort, search, user row + skeleton) 2026-05-03 22:53:33 -04:00
EngagementUserRow.tsx feat(07-02): add 7 engagement components (chips, summary card, sparkline, sort, search, user row + skeleton) 2026-05-03 22:53:33 -04:00
EngagementUserRowSkeleton.tsx feat(07-02): add 7 engagement components (chips, summary card, sparkline, sort, search, user row + skeleton) 2026-05-03 22:53:33 -04:00
FinanceRow.tsx feat(05-01): create FinanceRow component 2026-05-03 19:52:02 -04:00
FinanceSkeleton.tsx feat(05-01): create FinanceSkeleton component 2026-05-03 19:52:25 -04:00
HeaderBar.tsx fix(04-01): restore phase 2/3 work lost by worktree soft-reset 2026-05-03 18:01:14 -04:00
KpiCardMobile.tsx fix(04-01): restore phase 2/3 work lost by worktree soft-reset 2026-05-03 18:01:14 -04:00
MoreDrawer.tsx feat(09-04): page shell, drawer wiring, skeleton helper, channels placeholder 2026-05-10 07:40:40 -04:00
NeedsAttentionStrip.tsx fix(04-01): restore phase 2/3 work lost by worktree soft-reset 2026-05-03 18:01:14 -04:00
TicketFilterStrip.tsx feat(04-01): add TicketRowSkeleton and TicketFilterStrip presentational components 2026-05-03 18:02:13 -04:00
TicketRowSkeleton.tsx feat(04-01): add TicketRowSkeleton and TicketFilterStrip presentational components 2026-05-03 18:02:13 -04:00
WorkerStatusRow.tsx fix(04-01): restore phase 2/3 work lost by worktree soft-reset 2026-05-03 18:01:14 -04:00