customMultiSelectionDialog function

dynamic customMultiSelectionDialog(
  1. BuildContext context, {
  2. required Widget 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 Widget

Implementation

customMultiSelectionDialog(
  BuildContext context, {
  required Widget 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: title,
        items: items,
        selectedItems: selectedItems,
        onSubmit: onSubmit,
        hideTitleDivider: hideTitleDivider,
        itemDivider: itemDivider,
        hideSubTitle: hideSubTitle,
        submitButtonText: submitButtonText,
        selectAllText: selectAllText,
        unSelectAllText: unSelectAllText,
      ),
      onWillPop: () async => closeOnBackPress,
    ),
  );
}