🚑 Fix cannot load ongoing call

This commit is contained in:
LittleSheep 2024-09-08 16:03:50 +08:00
parent c991590b27
commit e4a5ac9d0a
5 changed files with 9 additions and 7 deletions

View File

@ -14,7 +14,8 @@ class Call {
String externalId;
int founderId;
int channelId;
List<dynamic> participants;
@JsonKey(defaultValue: [])
List<dynamic>? participants;
Channel channel;
Call({

View File

@ -19,7 +19,7 @@ Call _$CallFromJson(Map<String, dynamic> json) => Call(
externalId: json['external_id'] as String,
founderId: (json['founder_id'] as num).toInt(),
channelId: (json['channel_id'] as num).toInt(),
participants: json['participants'] as List<dynamic>,
participants: json['participants'] as List<dynamic>? ?? [],
channel: Channel.fromJson(json['channel'] as Map<String, dynamic>),
);

View File

@ -98,6 +98,7 @@ class _ChannelChatScreenState extends State<ChannelChatScreen>
setState(() => _ongoingCall = Call.fromJson(resp.body));
}
} catch (e) {
print((e as dynamic).stackTrace);
context.showErrorDialog(e);
}

View File

@ -53,11 +53,11 @@ class ChannelCallIndicator extends StatelessWidget {
return Text('callOngoingJoined'.trParams({
'duration': call.lastDuration.value,
}));
} else if (ongoingCall.participants.isEmpty) {
} else if (ongoingCall.participants!.isEmpty) {
return Text('callOngoingEmpty'.tr);
} else {
return Text('callOngoingParticipants'.trParams({
'count': ongoingCall.participants.length.toString(),
'count': ongoingCall.participants!.length.toString(),
}));
}
}),
@ -66,14 +66,14 @@ class ChannelCallIndicator extends StatelessWidget {
if (call.isInitialized.value) {
return const SizedBox.shrink();
}
if (ongoingCall.participants.isNotEmpty) {
if (ongoingCall.participants!.isNotEmpty) {
return Container(
height: 28,
constraints: const BoxConstraints(maxWidth: 120),
child: AvatarStack(
height: 28,
borderWidth: 0,
avatars: ongoingCall.participants.map((x) {
avatars: ongoingCall.participants!.map((x) {
final userinfo =
Account.fromJson(jsonDecode(x['metadata']));
return PlatformInfo.canCacheImage

View File

@ -16,7 +16,7 @@ class AppNavigationRegion extends StatelessWidget {
});
void _gotoChannel(Channel item) {
AppRouter.instance.pushReplacementNamed(
AppRouter.instance.goNamed(
'channelChat',
pathParameters: {'alias': item.alias},
queryParameters: {