64 lines
1.9 KiB
Markdown
64 lines
1.9 KiB
Markdown
<!-- SPDX-FileCopyrightText: 2026 FocusFlow contributors -->
|
|
<!-- SPDX-License-Identifier: AGPL-3.0-only -->
|
|
|
|
# FocusFlow Flutter
|
|
|
|
Flutter desktop app target for the FocusFlow UI work.
|
|
|
|
## Current Scope
|
|
|
|
UI Plan 1 implements a compact Today timeline mockup and selected-task modal.
|
|
The app target already existed before UI Plan 1 Block 1, so this package keeps
|
|
the existing Flutter desktop scaffolding and local scheduler dependency.
|
|
|
|
The app launches into the compact Today screen. All visible controls are
|
|
intentionally no-op except selecting a task card and closing the modal.
|
|
|
|
## Seed Data
|
|
|
|
Static demo data lives in `lib/app/demo_scheduler_composition.dart`. It creates
|
|
domain `ProjectProfile`, `OwnerSettings`, and `Task` records in an in-memory
|
|
application store, then reads `TodayState` through `GetTodayStateQuery`.
|
|
|
|
Widgets consume `TodayScreenData` from `lib/models/today_screen_models.dart`.
|
|
Scheduler core remains the source of truth for task state and Today ordering.
|
|
|
|
## Package Boundary
|
|
|
|
Allowed app imports include public scheduler APIs such as:
|
|
|
|
```dart
|
|
import 'package:scheduler_core/scheduler_core.dart';
|
|
```
|
|
|
|
The app must not import scheduler `src/` files, SQLite/Drift adapters,
|
|
desktop notification implementations, backup/export packages, or direct OS APIs
|
|
for this UI slice. `test/forbidden_imports_test.dart` enforces that boundary.
|
|
|
|
## Intentionally No-op
|
|
|
|
- Sidebar navigation.
|
|
- Date navigation and calendar buttons.
|
|
- Compact/Normal toggle.
|
|
- Settings button.
|
|
- Show upcoming.
|
|
- Timeline card action icons.
|
|
- Modal Done, Push, Move to Backlog, and Break up buttons.
|
|
|
|
## Commands
|
|
|
|
```sh
|
|
flutter pub get
|
|
flutter analyze
|
|
flutter test
|
|
```
|
|
|
|
Run these from `apps/focus_flow_flutter/`.
|
|
|
|
## Next Plans
|
|
|
|
- Wire functional Done, Push, Move to Backlog, and Break up actions.
|
|
- Add Backlog and quick-capture UI.
|
|
- Add persistent SQLite-backed runtime composition.
|
|
- Add real navigation/settings.
|
|
- Add Shield/Recovery only in a later scope.
|