parseCheckoutEvent function
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?>{});
}