Modal
Modal
It appears on the UI so you don't have to navigate to another page. It can be used to do a small task that doesn't require a whole new screen build,
prepared by the flutter code in the admin panel:
modals in different sizes
modals in different content
modals in different alignments
Series of modals
modals in different sizes:
these are modals in different sizes located in:
es_flutter_component/lib/components/es_modal/es_modal.dart
and is used as:
EsButton(
text: 'Modal',
fillColor: StructureBuilder.styles!.buttonColor().primary,
onTap: () {
EsModal.simple(context,);
},
),
Small:
Medium:
FullScreen:
modals in different content:
these are modals in different contents located in:
es_flutter_component/lib/components/es_modal/es_modal.dart
and is used as:
Information:
Confirm:
Form:
Grid:
modals in different alignments:
these are modals in different alignments located in:
es_flutter_component/lib/components/es_modal/es_modal.dart
and is used as:
EsButton(
text: 'TopLeft modal',
fillColor: StructureBuilder.styles!.buttonColor().primary,
onTap: () {
EsModal.position(context,alignment: Alignment.topLeft);
},
),
Center:
Buttom screen:
Top left:
Top right:
Bottom right:
Bottom left:
Custom alignment:
Series of modals:
these are Series of modals located in:
es_flutter_component/lib/components/es_modal/es_modal.dart
and is used as:
EsButton(
text: 'Series of modals',
fillColor: StructureBuilder.styles!.buttonColor().primary,
onTap: () {
EsModal.simple(context,
hasCustomWidget: true,
customWidget: _seriesModalCustomWidget(
buttonText: "Step2",
onTap: () {
EsModal.position(context,
alignment: Alignment.topRight,
hasCustomWidget: true,
customWidget: _seriesModalCustomWidget(
buttonText: "Step3",
onTap: () {
EsModal.position(context,
alignment: Alignment.topLeft,
hasCustomWidget: true,
customWidget:
_seriesModalCustomWidget(
buttonText: "Step4",
onTap: () {
EsModal.simple(context,
hasCustomWidget: true,
customWidget:
_seriesModalCustomWidget(
buttonText:
"Step5",
onTap: () {
EsModal.simple(
context,
hasCustomWidget:
true,
customWidget:
_seriesModalCustomWidget(
buttonText:
"Finish",
));
}));
}));
}));
}));
},
),
where
Widget _seriesModalCustomWidget(
{void Function()? onTap, String? buttonText}) {
return Container(
constraints: BoxConstraints(
maxWidth: StructureBuilder.dims!.h0Padding * 20,
maxHeight: StructureBuilder.dims!.h0Padding * 20,
),
child: Padding(
padding: EdgeInsets.all(StructureBuilder.dims!.h0Padding),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
InkWell(
onTap: () {
Navigator.pop(context);
},
child: Icon(Icons.close,
color: StructureBuilder.styles!.t3Color)),
EsVSpacer(),
EsOrdinaryText(
StructureBuilder.configs!.lorm,
align: TextAlign.justify,
),
EsButton(
text: buttonText ?? "next",
onTap: () {
Navigator.pop(context);
onTap!();
},
)
],
),
),
),
);
}