parseCheckoutEvent function

({Map<String, Object?> data, String? event}) parseCheckoutEvent(
  1. String rawMessage
)

Parses a raw JSON message string from the WebView into event name + data. Returns (event: null, data: {}) for malformed payloads.

Implementation

({String? event, Map<String, Object?> data}) parseCheckoutEvent(
  String rawMessage,
) {
  try {
    final Object? decoded = jsonDecode(rawMessage);
    if (decoded is Map<String, Object?>) {
      final Object? event = decoded['event'];
      final Object? data = decoded['data'];
      return (
        event: event is String ? event : null,
        data: data is Map<String, Object?> ? data : const <String, Object?>{},
      );
    }
  } on FormatException catch (_) {
    // Malformed JSON from the WebView — treat as an empty event.
  }
  return (event: null, data: const <String, Object?>{});
}