fromMap static method
Builds an event from the native wire map.
Returns null for an unknown type, or a missing or wrong-typed required
field. A wrong-typed optional field is treated as absent.
Implementation
static InAppMessageEvent? fromMap(Map<dynamic, dynamic> map) {
final campaignId = _stringOrNull(map['campaignId']);
switch (map['type']) {
case 'shown':
return campaignId == null ? null : InAppMessageShown(campaignId);
case 'clicked':
if (campaignId == null) return null;
final payload = map['payload'];
return InAppMessageClicked(
campaignId,
buttonId: _stringOrNull(map['buttonId']),
payload: payload is Map && _hasOnlyStringKeys(payload)
? _toStringKeyedMap(payload)
: null,
);
case 'dismissed':
if (campaignId == null) return null;
return InAppMessageDismissed(
campaignId,
InAppDismissReason.fromWire(map['reason']),
);
case 'answered':
final value = map['value'];
if (campaignId == null || value == null) return null;
return InAppMessageAnswered(
campaignId,
value,
comment: _stringOrNull(map['comment']),
);
case 'failed':
final message = _stringOrNull(map['message']);
return message == null
? null
: InAppMessageFailed(message, campaignId: campaignId);
default:
return null;
}
}