# 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` / `context.watch()` rebuilds UI on state change - `context.read()` 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)