← ClaudeAtlas

create-pagelisted

Build a page and its MobX page state — Provider root, context.read access, HookWidget for local state, AppNavigator for navigation, Observer for reactive rebuilds, and the loading/empty/error branches. Use when adding or modifying any screen, modal or route-level widget.
NarekManukyan/flutter-mobx-kit · ★ 0 · Web & Frontend · score 70
Install: claude install-skill NarekManukyan/flutter-mobx-kit
# Create a page + page state Governed by [ADR-0009](../../../docs/adr/0009-provider-based-state-access.md) (Provider access), [ADR-0010](../../../docs/adr/0010-hookwidget-default.md) (HookWidget), [ADR-0018](../../../docs/adr/0018-widget-construction-discipline.md) (widget construction), [ADR-0019](../../../docs/adr/0019-hook-selection.md) (hook selection), [ADR-0008](../../../docs/adr/0008-appnavigator-routing-abstraction.md) (navigation), [ADR-0002](../../../docs/adr/0002-state-vs-store-separation.md) (state vs store). ## The page state `@injectable`, MobX, lives at `lib/features/{feature}/view/{feature}_page_state.dart`. It **never** touches `DioService` — it calls stores and use cases. ```dart part 'home_page_state.g.dart'; @injectable class HomePageState = _HomePageStateBase with _$HomePageState; abstract class _HomePageStateBase with Store { final HomeStore _homeStore; final AppNavigator _appNavigator; final OpenTodoDetailsUseCase _openTodoDetailsUseCase; _HomePageStateBase( this._homeStore, this._appNavigator, this._openTodoDetailsUseCase, ); HomeStore get store => _homeStore; Future<void> init() async => _homeStore.loadTodos(); @action Future<void> onTodoTap(String id) async => _openTodoDetailsUseCase(id); @action Future<void> onLogoutPressed() async { await _homeStore.logout(); await _appNavigator.pushAndPopAll(const LoginRoute()); } void dispose() {} } ``` - Handler names read as events: `onXPressed`, `onXTa