mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-08-24 03:55:49 -05:00
Fix load chat history on page load
This commit is contained in:
@@ -486,6 +486,8 @@ function ChatProviderInner({
|
||||
unsubscribe,
|
||||
setRooms,
|
||||
setMessagesByRoom,
|
||||
requestHistory,
|
||||
messagesByRoom,
|
||||
});
|
||||
|
||||
const contextValue = React.useMemo(
|
||||
@@ -542,6 +544,8 @@ function useChatRouteSync({
|
||||
unsubscribe,
|
||||
setRooms,
|
||||
setMessagesByRoom,
|
||||
requestHistory,
|
||||
messagesByRoom,
|
||||
}: {
|
||||
rooms: RoomInfo[];
|
||||
userId: number;
|
||||
@@ -555,6 +559,8 @@ function useChatRouteSync({
|
||||
setMessagesByRoom: React.Dispatch<
|
||||
React.SetStateAction<Record<string, ChatMessage[]>>
|
||||
>;
|
||||
requestHistory: (chatCode: string) => void;
|
||||
messagesByRoom: Record<string, ChatMessage[]>;
|
||||
}) {
|
||||
const rawChatCode = useCurrentRouteChatCode();
|
||||
const chatCodesKey = rawChatCode
|
||||
@@ -615,6 +621,9 @@ function useChatRouteSync({
|
||||
|
||||
if (routeChatCodeChanged) {
|
||||
setActiveRoom(chatCodes[0]);
|
||||
if (!messagesByRoom[chatCodes[0]]) {
|
||||
requestHistory(chatCodes[0]);
|
||||
}
|
||||
if (layoutSize === "desktop") {
|
||||
setChatOpen(true);
|
||||
}
|
||||
@@ -632,6 +641,9 @@ function useChatRouteSync({
|
||||
|
||||
if (matchedRoom) {
|
||||
setActiveRoom(matchedRoom.chatCode);
|
||||
if (!messagesByRoom[matchedRoom.chatCode]) {
|
||||
requestHistory(matchedRoom.chatCode);
|
||||
}
|
||||
if (layoutSize === "desktop") {
|
||||
setChatOpen(true);
|
||||
}
|
||||
@@ -652,6 +664,8 @@ function useChatRouteSync({
|
||||
unsubscribe,
|
||||
setRooms,
|
||||
setMessagesByRoom,
|
||||
requestHistory,
|
||||
messagesByRoom,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user