- Untrack .claude/launch.json (Claude Code config) - Add .claude/, .mcp.json, CLAUDE.md, and AI-generated CSVs to .gitignore - Add _notes/ vault (architecture, API, tasks, bugs, infra docs) - Add .obsidian/ plugin/vault config (workspace state excluded) - Sync CHANGELOG.md
23 lines
789 B
Markdown
23 lines
789 B
Markdown
# State Management
|
|
|
|
## Approach
|
|
Eventify uses **Provider** (`^6.1.2`) for state management.
|
|
|
|
## Pattern
|
|
- `ChangeNotifier` classes hold state
|
|
- `ChangeNotifierProvider` exposes state to the widget tree
|
|
- `Consumer<T>` / `context.watch<T>()` rebuilds UI on state change
|
|
- `context.read<T>()` for one-off reads without subscribing
|
|
|
|
## Key Providers
|
|
> Fill in as you identify providers in `lib/core/` and `lib/features/`
|
|
|
|
| Provider | Location | Responsibility |
|
|
|----------|----------|----------------|
|
|
| AuthProvider | `lib/core/auth/` | Session, login/logout |
|
|
| ThemeManager | `lib/core/theme_manager.dart` | Dark/Light mode toggle |
|
|
|
|
## Notes
|
|
- Desktop and mobile screens share the same providers via `responsive_layout.dart`
|
|
- Local persistence uses `shared_preferences` (not Provider)
|