show static method

void show(
  1. BuildContext context, {
  2. required String message,
  3. String? title,
  4. KiteToastVariant variant = KiteToastVariant.neutral,
  5. Duration duration = const Duration(seconds: 4),
  6. VoidCallback? onTap,
  7. VoidCallback? onAction,
  8. String? actionLabel,
})

Implementation

static void show(
  BuildContext context, {
  required String message,
  String? title,
  KiteToastVariant variant = KiteToastVariant.neutral,
  Duration duration = const Duration(seconds: 4),
  VoidCallback? onTap,
  VoidCallback? onAction,
  String? actionLabel,
}) {
  _activeEntry?.remove();
  _timer?.cancel();

  final overlay = Overlay.of(context);
  late OverlayEntry entry;

  entry = OverlayEntry(
    builder: (overlayContext) {
      return _ToastOverlay(
        title: title,
        message: message,
        variant: variant,
        onTap: onTap,
        onAction: onAction,
        actionLabel: actionLabel,
        onClose: () {
          if (entry.mounted) entry.remove();
          if (identical(_activeEntry, entry)) {
            _activeEntry = null;
            _timer?.cancel();
          }
        },
      );
    },
  );

  _activeEntry = entry;
  overlay.insert(entry);

  _timer = Timer(duration, () {
    if (entry.mounted) {
      // Trigger reverse animation before removing
      _ToastOverlayState.activeState?.dismiss();
    }
  });
}