buildPopup method

  1. @override
Widget? buildPopup()
override

Implementation

@override
Widget? buildPopup() {
  var childList = <Widget>[];
  if (widget.extra != null) {
    childList.add(AntdBox(style: style.extraStyle, child: widget.extra!));
  }

  Widget wrap(AntdSheetAction action, bool cancel,
      AntdActionStyle? defaultStyle, AntdActionStyle? extraStyle) {
    var actionThemeStyle = theme.sheetActionStyle?.call(
        context, action, defaultStyle ?? const AntdActionStyle(), token);
    actionThemeStyle = defaultStyle.merge(actionThemeStyle);
    actionThemeStyle = actionThemeStyle.merge(extraStyle);

    return AntdStyleProvider<AntdActionStyle>(
        style: actionThemeStyle,
        child: AntdBox(
          options: const AntdTapOptions(alwaysReceiveTap: true),
          onTap: () {
            _handlerTap(action, cancel);
          },
          child: action,
        ));
  }

  for (var action in widget.actions) {
    childList.add(wrap(
        action,
        false,
        style.actionStyle,
        AntdActionStyle(
            safeArea: widget.safeArea &&
                    action == widget.actions.last &&
                    widget.cancelText == null
                ? AntdPosition.bottom
                : null)));
  }

  if (widget.cancelText != null) {
    childList.add(wrap(
        AntdSheetAction(
            title: widget.cancelText,
            safeArea: widget.safeArea ? AntdPosition.bottom : null),
        true,
        style.cancelActionStyle,
        null));
  }
  return Column(
    mainAxisSize: MainAxisSize.min,
    children: childList,
  );
}