multiSelectionDialog function

dynamic multiSelectionDialog(
  1. BuildContext context, {
  2. required String title,
  3. required Set<SimpleItem> items,
  4. required Set<SimpleItem> selectedItems,
  5. required dynamic onSubmit(
    1. Set<SimpleItem>
    ),
  6. bool hideTitleDivider = false,
  7. bool closeOnBackPress = true,
  8. bool itemDivider = true,
  9. bool hideSubTitle = true,
  10. String? submitButtonText,
  11. String? selectAllText,
  12. String? unSelectAllText,
})

multiSelectionDialog with title String

Implementation

multiSelectionDialog(
  BuildContext context, {
  required String title,
  required Set<SimpleItem> items,
  required Set<SimpleItem> selectedItems,
  required Function(Set<SimpleItem>) onSubmit,
  bool hideTitleDivider = false,
  bool closeOnBackPress = true,
  bool itemDivider = true,
  bool hideSubTitle = true,
  String? submitButtonText,
  String? selectAllText,
  String? unSelectAllText,
}) {
  return showGeneralDialog(
    context: context,
    barrierDismissible: closeOnBackPress,
    barrierLabel: "",
    barrierColor: getBarrierColor(),
    transitionDuration: getDialogPopUpAnimationDuration(),
    transitionBuilder: (c2, a1, a2, widget) {
      return getDialogAnimation(a1, a2, widget);
    },
    pageBuilder: (c1, a1, a2) => WillPopScope(
      child: MultiSelectionDialog(
        titleWidget: Text(
          title,
          style: dialogTitleStyle(context),
        ),
        items: items,
        selectedItems: selectedItems,
        onSubmit: onSubmit,
        hideTitleDivider: hideTitleDivider,
        itemDivider: itemDivider,
        hideSubTitle: hideSubTitle,
        submitButtonText: submitButtonText,
        selectAllText: selectAllText,
        unSelectAllText: unSelectAllText,
      ),
      onWillPop: () async => closeOnBackPress,
    ),
  );
}