🐛 Fix websocket didn't connect after logged out

This commit is contained in:
2025-11-30 17:25:16 +08:00
parent 935e6d5833
commit 64ab30b0a9

View File

@@ -6,6 +6,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/pods/message.dart'; import 'package:island/pods/message.dart';
import 'package:island/pods/network.dart'; import 'package:island/pods/network.dart';
import 'package:island/pods/userinfo.dart'; import 'package:island/pods/userinfo.dart';
import 'package:island/pods/websocket.dart';
import 'package:island/screens/notification.dart'; import 'package:island/screens/notification.dart';
import 'package:island/services/responsive.dart'; import 'package:island/services/responsive.dart';
import 'package:island/widgets/account/account_name.dart'; import 'package:island/widgets/account/account_name.dart';
@@ -468,6 +469,7 @@ class AccountScreen extends HookConsumerWidget {
contentPadding: EdgeInsets.symmetric(horizontal: 24), contentPadding: EdgeInsets.symmetric(horizontal: 24),
title: Text('logout').tr(), title: Text('logout').tr(),
onTap: () async { onTap: () async {
final ws = ref.watch(websocketStateProvider.notifier);
final apiClient = ref.watch(apiClientProvider); final apiClient = ref.watch(apiClientProvider);
showLoadingModal(context); showLoadingModal(context);
await apiClient.delete('/pass/accounts/me/sessions/current'); await apiClient.delete('/pass/accounts/me/sessions/current');
@@ -476,6 +478,7 @@ class AccountScreen extends HookConsumerWidget {
hideLoadingModal(context); hideLoadingModal(context);
final userNotifier = ref.read(userInfoProvider.notifier); final userNotifier = ref.read(userInfoProvider.notifier);
userNotifier.logOut(); userNotifier.logOut();
ws.close();
}, },
), ),
], ],