fix: room logic

This commit is contained in:
xkeyC 2025-11-24 14:48:08 +08:00
parent 4718b4627b
commit f9c06c0980
3 changed files with 12 additions and 5 deletions

View File

@ -228,8 +228,9 @@ class CreateRoomDialog extends HookConsumerWidget {
} }
} }
final socialLinks = socialLinksController.text.split('\n'); final socialLinks = socialLinksController.text.split('\n').map((e) => e.trim()).toList();
//
socialLinks.removeWhere((link) => link.trim().isEmpty);
// https // https
final invalidLinks = socialLinks.where((link) => !link.startsWith('https://')).toList(); final invalidLinks = socialLinks.where((link) => !link.startsWith('https://')).toList();
if (invalidLinks.isNotEmpty) { if (invalidLinks.isNotEmpty) {

View File

@ -1,5 +1,6 @@
import 'package:fluent_ui/fluent_ui.dart'; import 'package:fluent_ui/fluent_ui.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:starcitizen_doctor/common/utils/base_utils.dart';
import 'package:starcitizen_doctor/provider/party_room.dart'; import 'package:starcitizen_doctor/provider/party_room.dart';
import 'package:starcitizen_doctor/ui/party_room/party_room_ui_model.dart'; import 'package:starcitizen_doctor/ui/party_room/party_room_ui_model.dart';
import 'package:starcitizen_doctor/ui/party_room/widgets/create_room_dialog.dart'; import 'package:starcitizen_doctor/ui/party_room/widgets/create_room_dialog.dart';
@ -114,14 +115,16 @@ class PartyRoomHeader extends ConsumerWidget {
width: double.infinity, width: double.infinity,
child: Button( child: Button(
onPressed: () async { onPressed: () async {
final userOK = await showConfirmDialogs(context, "提示", Text("确认离开房间吗?"));
if (!userOK) return;
await partyRoom.leaveRoom(); await partyRoom.leaveRoom();
}, },
style: ButtonStyle( style: ButtonStyle(
backgroundColor: WidgetStateProperty.resolveWith((state) { backgroundColor: WidgetStateProperty.resolveWith((state) {
if (state.isHovered || state.isPressed) { if (state.isHovered || state.isPressed) {
return const Color(0xFFDA373C); return const Color(0xFF404249);
} }
return const Color(0xFF404249); return const Color(0xFF404249).withValues(alpha: .6);
}), }),
foregroundColor: WidgetStateProperty.resolveWith((state) { foregroundColor: WidgetStateProperty.resolveWith((state) {
if (state.isHovered || state.isPressed) { if (state.isHovered || state.isPressed) {

View File

@ -540,7 +540,10 @@ class PartyRoomListPage extends HookConsumerWidget {
final passwordController = TextEditingController(); final passwordController = TextEditingController();
return ContentDialog( return ContentDialog(
title: const Text('输入房间密码'), title: const Text('输入房间密码'),
content: TextBox(controller: passwordController, placeholder: '请输入密码', obscureText: true), content: Column(
mainAxisSize: MainAxisSize.min,
children: [TextBox(controller: passwordController, placeholder: '请输入密码', obscureText: true)],
),
actions: [ actions: [
Button(child: const Text('取消'), onPressed: () => Navigator.pop(context)), Button(child: const Text('取消'), onPressed: () => Navigator.pop(context)),
FilledButton(child: const Text('加入'), onPressed: () => Navigator.pop(context, passwordController.text)), FilledButton(child: const Text('加入'), onPressed: () => Navigator.pop(context, passwordController.text)),