submitDialogWithDesignSystem<Payload, Result> static method
void
submitDialogWithDesignSystem<Payload, Result>({
- required SmartRepository<
Payload, Result> repository, - required BuildContext context,
- dynamic listener(
- BuildContext,
- SmartState<
Result>
- Widget success(
- BuildContext,
- Result,
- VoidCallback close
- Widget fail(
- BuildContext,
- VoidCallback close
- Widget loading(
- BuildContext,
- VoidCallback close
- Widget initial(
- BuildContext,
- VoidCallback close
- ComponentInitialAction<
Payload> initialAction = const ComponentInitialAction.none(), - bool dismissible = false,
Implementation
static void submitDialogWithDesignSystem<Payload, Result>({
required SmartRepository<Payload, Result> repository,
required BuildContext context,
Function(BuildContext, SmartState<Result>)? listener,
Widget Function(BuildContext, Result, VoidCallback close)? success,
Widget Function(BuildContext, VoidCallback close)? fail,
Widget Function(BuildContext, VoidCallback close)? loading,
Widget Function(BuildContext, VoidCallback close)? initial,
ComponentInitialAction<Payload> initialAction = const ComponentInitialAction.none(),
bool dismissible = false,
}) {
SmartFeatureBuilder.submitDialog<Payload, Result>(
context: context,
repository: repository,
initialAction: initialAction,
dismissible: dismissible,
builder: (context, state, onClose) {
return state.when(
// `TODO`(Matias): Replace widgets with design system widgets
initial: () => initial?.call(context, onClose) ?? const Center(child: Text('Waiting for action')),
loading: (_, __) => loading?.call(context, onClose) ?? const CircularProgressIndicator.adaptive(),
fail: (_) => fail?.call(context, onClose) ?? const Center(child: Text('Failed to submit data')),
success: (data) =>
success?.call(context, data, onClose) ??
Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text('Data submitted'),
ElevatedButton(onPressed: () => _onClose(context), child: const Text('Close')),
],
),
);
},
listener: listener,
);
}