fix: party room provider

This commit is contained in:
xkeyC 2025-11-20 09:28:46 +08:00
parent b65187d4f0
commit d1f19bae4e
2 changed files with 18 additions and 7 deletions

View File

@ -781,9 +781,9 @@ class PartyRoom extends _$PartyRoom {
void _handleRoomEvent(partroom.RoomEvent event) { void _handleRoomEvent(partroom.RoomEvent event) {
dPrint('[PartyRoom] Event received: ${event.type}'); dPrint('[PartyRoom] Event received: ${event.type}');
// 50 // 1000
final recentEvents = [...state.room.recentEvents, event]; final recentEvents = [...state.room.recentEvents, event];
if (recentEvents.length > 50) { if (recentEvents.length > 1000) {
recentEvents.removeAt(0); recentEvents.removeAt(0);
} }
@ -794,13 +794,24 @@ class PartyRoom extends _$PartyRoom {
case partroom.RoomEventType.MEMBER_JOINED: case partroom.RoomEventType.MEMBER_JOINED:
case partroom.RoomEventType.MEMBER_LEFT: case partroom.RoomEventType.MEMBER_LEFT:
case partroom.RoomEventType.MEMBER_KICKED: case partroom.RoomEventType.MEMBER_KICKED:
case partroom.RoomEventType.MEMBER_STATUS_UPDATED:
// //
if (state.room.roomUuid != null) { if (state.room.roomUuid != null) {
getRoomMembers(state.room.roomUuid!); getRoomMembers(state.room.roomUuid!);
} }
break; break;
case partroom.RoomEventType.MEMBER_STATUS_UPDATED:
//
state = state.copyWith(
room: state.room.copyWith(
members: state.room.members.map((member) {
if (member.gameUserId == event.member.gameUserId) {
return event.member;
}
return member;
}).toList(),
),
);
break;
case partroom.RoomEventType.OWNER_CHANGED: case partroom.RoomEventType.OWNER_CHANGED:
// //
final isOwner = event.member.gameUserId == state.auth.userInfo?.gameUserId; final isOwner = event.member.gameUserId == state.auth.userInfo?.gameUserId;

View File

@ -127,7 +127,7 @@ class CreateRoomDialog extends HookConsumerWidget {
), ),
const SizedBox(height: 16), const SizedBox(height: 16),
InfoLabel( InfoLabel(
label: '目标人数 (2-600)', label: '目标人数 (2-100)',
child: TextBox( child: TextBox(
controller: targetMembersController, controller: targetMembersController,
placeholder: '输入目标人数', placeholder: '输入目标人数',
@ -194,12 +194,12 @@ class CreateRoomDialog extends HookConsumerWidget {
} }
final targetMembers = int.tryParse(targetMembersController.text); final targetMembers = int.tryParse(targetMembersController.text);
if (targetMembers == null || targetMembers < 2 || targetMembers > 600) { if (targetMembers == null || targetMembers < 2 || targetMembers > 100) {
await showDialog( await showDialog(
context: context, context: context,
builder: (context) => ContentDialog( builder: (context) => ContentDialog(
title: const Text('提示'), title: const Text('提示'),
content: const Text('目标人数必须在 2-600 之间'), content: const Text('目标人数必须在 2-100 之间'),
actions: [FilledButton(child: const Text('确定'), onPressed: () => Navigator.pop(context))], actions: [FilledButton(child: const Text('确定'), onPressed: () => Navigator.pop(context))],
), ),
); );