Wire Compact/Normal timeline toggle #11
Labels
No labels
area:backend
area:cf-integration
area:flutter-ui
priority:blocking-v1
priority:v1-polish
type:docs
type:epic
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: eva/focus-flow#11
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Part of #6.
top_bar_mode_toggle.darthas anonPressed: () {}no-op. Backend already supportsTodayCompactState/CompactTimelineStateper MVP-AC-06.Scope
TimelineRowandCompactPanelrenderingOut of scope
Persisting the toggle choice across app restarts, unless trivial given existing settings persistence.
Acceptance criteria
Toggling the button switches Today between compact and normal rendering live.
Related
#6
Rescoping based on actual code inspection — this is bigger than "wire the existing toggle."
What's real:
_ModeToggle(lib/widgets/top_bar/top_bar_mode_toggle.dart) has a genuineonPressed: () {}no-op on the "Normal" segment, and "Compact" is styled as permanently active with no tap handler at all.What's NOT real, despite looking like it exists: There IS a
CompactPanel/TodayPanewidget pair (lib/widgets/schedule_components.dart,lib/widgets/today_pane.dart) that renders aTodayCompactState-shaped compact view — butTodayPaneis dead code. It is not referenced anywhere inlib/ortest/outside its own file. It appears to be a leftover from the "UI Plan 1 — Compact Today Timeline Mockup" era, superseded by the current live pipeline (FocusFlowHome→_TodayScreenScaffold→TimelineView).The current live
TodayScreenData/TodayScreenControllerpipeline has no compact-vs-normal concept at all.TimelineCardModel'sisCompact(incard_metrics.dart) is a per-card automatic density decision based on available pixel height — not a user-toggleable mode.OwnerSettings.compactModeEnabledexists as a persisted backend field but nothing in the live Flutter pipeline reads it.So closing this issue requires deciding what "Normal" vs "Compact" actually means for the current
TimelineViewrendering (not the orphaned mockup), then:CompactPanel/TodayPaneor design a new compact rendering path against liveTodayScreenData.TodayScreenController/TodayScreenData(or a separate lightweightValueNotifierin_FocusFlowHomeState)._ModeToggleto that state and branching_buildTodayContentbetween normal and compact rendering.Keeping
priority:blocking-v1since MVP-AC-06 ("Use compact Today mode manually") is a named V1 acceptance criterion inV1_REQUIREMENTS_TRACEABILITY_MATRIX.md, not polish — but flagging that this needs a short design decision before implementation, not just wiring.