import 'package:flutter/material.dart'; import '../../../state/app/application/marianumMessage/marianum_message_controller.dart'; import '../../../state/app/application/marianumMessage/marianum_message_state.dart'; import '../../../state/infrastructure/loadable_state.dart'; import '../../../state/infrastructure/state_extensions.dart'; import '../../../state/widgets/controller_consumer.dart'; import '../../../state/widgets/loadable_controller_consumer.dart'; import '../../../state/widgets/sub_selected_controller_consumer.dart'; import '../../../state/widgets/controller_provider.dart'; class Test extends StatelessWidget { const Test({super.key}); @override Widget build(BuildContext context) => ControllerProvider<MarianumMessageController>( create: (context) => MarianumMessageController(), child: (context) => Scaffold( appBar: AppBar(title: const Text('TEST')), body: LoadableControllerConsumer<MarianumMessageController, LoadableState<MarianumMessageState>>( child: Column( children: [ TextButton( onPressed: () => context.readController<MarianumMessageController>().loading(), child: Text(context.watchController<MarianumMessageController>().state.loadingState.toString()) ), TextButton( onPressed: () => context.readController<MarianumMessageController>().backgroundLoading(), child: Text(context.watchController<MarianumMessageController>().state.loadingState.toString()) ), TextButton( onPressed: () => context.readController<MarianumMessageController>().done(), child: Text(context.watchController<MarianumMessageController>().state.loadingState.toString()) ), TextButton( onPressed: () => context.readController<MarianumMessageController>().error(), child: Text(context.watchController<MarianumMessageController>().state.loadingState.toString()) ), ControllerConsumer<MarianumMessageController, LoadableState<MarianumMessageState>>(child: (context, state) => Text(state.data!.test.toString())), SubSelectedControllerConsumer<MarianumMessageController, LoadableState<MarianumMessageState>, LoadingState>( subselect: (state) => state.loadingState, child: (context, state) => Text(state.toString()), ) ], ), ), ), ); }