show method

Future<void> show()

Implementation

Future<void> show() async {
  if (_isShowing) {
    closeCurrentSnackbar();
  }

  final navigatorState = flow_core.Flows.navigator;
  if (navigatorState == null) {
    throw 'Navigator not found. Did you forget to wrap your app with FlowsMaterialApp?';
  }

  // Use navigator's overlay directly
  final overlay = navigatorState.overlay!;

  _overlayEntry = OverlayEntry(
    builder: (context) => snackBar,
  );

  _isShowing = true;
  snackBar.snackbarStatus?.call(SnackbarStatus.opening);
  overlay.insert(_overlayEntry!);

  snackBar.snackbarStatus?.call(SnackbarStatus.open);

  if (snackBar.duration != null) {
    _timer = Timer(snackBar.duration!, () {
      dismiss();
    });
  }
}