import type { AppStore } from './store'; import type { AppSocket } from '../api/socket'; import { userActions } from './slices'; import type { FriendRequest } from '../model/friend'; /** * 初始化Redux 上下文 */ export function setupRedux(socket: AppSocket, store: AppStore) { console.log('初始化Redux上下文...'); // 获取好友列表 socket.request('friend.getAllFriends').then((data) => { store.dispatch(userActions.setFriendList(data)); }); // 获取好友邀请列表 socket.request('friend.request.allRelated').then((data) => { store.dispatch(userActions.setFriendRequests(data)); }); socket.listen<{ userId: string }>('friend.add', ({ userId }) => { if (typeof userId !== 'string') { console.error('错误的信息', userId); return; } store.dispatch(userActions.appendFriend(userId)); }); socket.listen('friend.request.add', (request) => { store.dispatch(userActions.appendFriendRequest(request)); }); socket.listen<{ requestId: string }>( 'friend.request.remove', ({ requestId }) => { store.dispatch(userActions.removeFriendRequest(requestId)); } ); }