diff --git a/packages/client/src/components/panels/InvitePanel/index.js b/packages/client/src/components/panels/InvitePanel/index.js index dc634bfef5..4106afa776 100644 --- a/packages/client/src/components/panels/InvitePanel/index.js +++ b/packages/client/src/components/panels/InvitePanel/index.js @@ -35,6 +35,7 @@ const InvitePanel = ({ adminLink, defaultAccess, inviteUsers, + reloadSelectionParentRoom, }) => { const [selectedRoom, setSelectedRoom] = useState(null); const [hasErrors, setHasErrors] = useState(false); @@ -159,6 +160,7 @@ const InvitePanel = ({ : await setRoomSecurity(roomId, data); onClose(); toastr.success(`Users invited`); + reloadSelectionParentRoom(); } catch (err) { toastr.error(err); } @@ -225,6 +227,7 @@ export default inject(({ auth, peopleStore, filesStore, dialogsStore }) => { const { theme } = auth.settingsStore; const { getUsersByQuery, inviteUsers } = peopleStore.usersStore; + const { reloadSelectionParentRoom } = auth.infoPanelStore; const { getPortalInviteLinks, @@ -265,6 +268,7 @@ export default inject(({ auth, peopleStore, filesStore, dialogsStore }) => { guestLink, adminLink, inviteUsers, + reloadSelectionParentRoom, }; })( withTranslation([ diff --git a/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js b/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js index dc11f516d8..a9ae14d77f 100644 --- a/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js +++ b/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js @@ -65,29 +65,34 @@ const Members = ({ }; }; - useEffect(async () => { - if (!selectionParentRoom) return; + // useEffect(() => { + // if (selectionParentRoom.members) setMembers(selectionParentRoom.members); + // }, [selectionParentRoom?.members]); - if (selectionParentRoom.members) { - setMembers(selectionParentRoom.members); - return; - } + // useEffect(async () => { + // if (!selectionParentRoom) return; - const fetchedMembers = await fetchMembers(selectionParentRoom.id); - setSelectionParentRoom({ - ...selectionParentRoom, - members: fetchedMembers, - }); - }, [selectionParentRoom]); + // // if (selectionParentRoom.members) { + // // setMembers(selectionParentRoom.members); + // // return; + // // } + + // const fetchedMembers = await fetchMembers(selectionParentRoom.id); + // setSelectionParentRoom({ + // ...selectionParentRoom, + // members: fetchedMembers, + // }); + // }, [selectionParentRoom]); useEffect(async () => { if (!selection.isRoom) return; - if (selectionParentRoom && selectionParentRoom.id === selection.id) return; + // if (selectionParentRoom && selectionParentRoom.id === selection.id) return; const fetchedMembers = await fetchMembers(selection.id); + console.log(fetchedMembers); + setMembers(fetchedMembers); setSelectionParentRoom({ ...selection, - members: fetchedMembers, }); }, [selection]); @@ -112,6 +117,7 @@ const Members = ({ }; if (showLoader) return ; + console.log(selectionParentRoom, members); if (!selectionParentRoom || !members) return null; const [currentMember] = members.inRoom.filter( diff --git a/packages/common/store/InfoPanelStore.js b/packages/common/store/InfoPanelStore.js index 16e8e03514..f69698e0ff 100644 --- a/packages/common/store/InfoPanelStore.js +++ b/packages/common/store/InfoPanelStore.js @@ -6,6 +6,7 @@ import { combineUrl } from "@docspace/common/utils"; import { AppServerConfig } from "@docspace/common/constants"; import config from "PACKAGE_FILE"; import Filter from "../api/people/filter"; +import { getRoomInfo } from "../api/rooms"; const observedKeys = [ "id", @@ -132,6 +133,22 @@ class InfoPanelStore { this.setSelection(this.calculateSelection()); }; + reloadSelectionParentRoom = async () => { + if (!this.getIsRooms) return; + + const currentFolderRoomId = this.selectedFolderStore.pathParts[1]; + const prevRoomId = selectionParentRoom?.id; + + if (!currentFolderRoomId || currentFolderRoomId === prevRoomId) return; + + const newSelectionParentRoom = await getRoomInfo(currentFolderRoomId); + if (prevRoomId === newSelectionParentRoom.id) return; + + this.setSelectionParentRoom( + this.normalizeSelection(newSelectionParentRoom) + ); + }; + isItemChanged = (oldItem, newItem) => { for (let i = 0; i < observedKeys.length; i++) { const value = observedKeys[i];