fix: group update SSE event
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
// const BASE_URL = `${location.origin}/api`;
|
||||
const BASE_URL = `https://dev.rustchat.com/api`;
|
||||
export const CACHE_VERSION = `0.2.13`;
|
||||
// const BASE_URL = `https://rustchat.net/api`;
|
||||
export const ContentTypes = {
|
||||
text: "text/plain",
|
||||
markdown: "text/markdown",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { createSlice } from "@reduxjs/toolkit";
|
||||
import BASE_URL from "../config";
|
||||
import { getNonNullValues } from "../../common/utils";
|
||||
const initialState = {
|
||||
ids: [],
|
||||
byId: {},
|
||||
@@ -71,7 +72,7 @@ const channelsSlice = createSlice({
|
||||
}
|
||||
break;
|
||||
default:
|
||||
state.byId[id] = { ...state.byId[id], ...rest };
|
||||
state.byId[id] = { ...state.byId[id], ...getNonNullValues(rest) };
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
import { useEffect, useState } from "react";
|
||||
// import TextareaAutosize from "react-textarea-autosize";
|
||||
import { useDispatch, useSelector } from "react-redux";
|
||||
// import { useKey } from "rooks";
|
||||
|
||||
import useSendMessage from "../../hook/useSendMessage";
|
||||
import useAddLocalFileMessage from "../../hook/useAddLocalFileMessage";
|
||||
import { updateInputMode, updateUploadFiles } from "../../../app/slices/ui";
|
||||
|
||||
@@ -228,6 +228,17 @@ export default function useStreaming() {
|
||||
console.log("joined group", data.group);
|
||||
dispatch(addChannel(data.group));
|
||||
break;
|
||||
case "group_changed":
|
||||
{
|
||||
const { gid, ...rest } = data;
|
||||
dispatch(
|
||||
updateChannel({
|
||||
id: gid,
|
||||
...rest,
|
||||
})
|
||||
);
|
||||
}
|
||||
break;
|
||||
case "user_joined_group":
|
||||
{
|
||||
console.log("new user joined group", data.gid);
|
||||
@@ -245,6 +256,9 @@ export default function useStreaming() {
|
||||
case "user_leaved_group":
|
||||
{
|
||||
const { gid, uid: uids } = data;
|
||||
if (uids.findIndex((id) => id == loginUid) > -1) {
|
||||
dispatch(removeChannel(gid));
|
||||
} else {
|
||||
dispatch(
|
||||
updateChannel({
|
||||
operation: "remove_member",
|
||||
@@ -253,6 +267,7 @@ export default function useStreaming() {
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "kick_from_group":
|
||||
console.log("kicked from group", data.gid);
|
||||
|
||||
Reference in New Issue
Block a user