show method

dynamic show(
  1. BuildContext context
)

Implementation

show(BuildContext context) {
  if (child == null && dialogContainer == null) {
    throw AssertionError('dialogContainer or child can not be null');
  }
  late Widget widget;
  double? width;
  if (child != null) {
    widget = child!;
  } else {
    width = dialogContainer?.width;
    switch (dialogContainer!.type) {
      case JJDialogType.list:
      case JJDialogType.picker:
      case JJDialogType.grid:
      case JJDialogType.wrap:
        if (dialogContainer!.child is JJDialogList) {
          widget = dialogContainer!;
        } else {
          throw AssertionError('JJDialogType.list .picker .grid .wrap, child should be JJDialogList');
        }
        break;
      case JJDialogType.loading:
        position = JJDialogPosition.center;
        insetPadding = EdgeInsets.zero;
        barrierDismissible = false;
        width ??= 100;
        dialogContainer?.height ??= width;
        break;
      case JJDialogType.cupertinoAlert:
        position = JJDialogPosition.center;
        insetPadding = EdgeInsets.zero;
        barrierDismissible = false;
        width ??= 260;
        dialogContainer?.height ??= width;
        _showCupertinoAlert(context, widget: dialogContainer!);
        return;
      case JJDialogType.alert:
        position = JJDialogPosition.center;
        insetPadding = EdgeInsets.zero;
        barrierDismissible = false;
        width ??= 260;
        dialogContainer?.decoration = const BoxDecoration(color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(15)));
        dialogContainer?.clipBehavior = Clip.antiAlias;
        break;
      case JJDialogType.custom:
        if (dialogContainer!.custom != null) {
          widget = dialogContainer!.custom!;
        } else {
          throw AssertionError('JJDialogType.custom custom can not be null');
        }
        break;
      default:
        position = JJDialogPosition.center;
    }

    widget = dialogContainer!;
  }

  if (position == JJDialogPosition.bottom) {
    _showBottomDialog(context, widget: widget);
  } else {
    _showDialog(context, widget: widget, width: width);
  }
}