InappifySessionStateChange.fromMap constructor
InappifySessionStateChange.fromMap(
- Map<String, dynamic> map
)
Implementation
factory InappifySessionStateChange.fromMap(Map<String, dynamic> map) {
final rawState = map['state'];
final retryable = map['retryable'];
final reason = map['reason'];
if (rawState is! String || retryable is! bool) {
throw const FormatException(
'Session state event requires string state and bool retryable fields.',
);
}
if (reason != null && reason is! String) {
throw const FormatException(
'Session state event reason must be a string or null.',
);
}
final state = InappifySessionState.fromWire(rawState);
if (state == InappifySessionState.unknown) {
throw FormatException('Unsupported Inappify session state: $rawState.');
}
return InappifySessionStateChange(
state: state,
isRetryable: retryable,
reason: reason as String?,
);
}