From cb76a7e28badf63ea61c5701a3b4218c7f825b79 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Mon, 4 Dec 2023 12:25:26 +0300 Subject: [PATCH] SDK: Fixed getting base room logo. Added requestToken to RoomSelector for opening public rooms. --- .../src/components/RoomSelector/index.js | 2 +- packages/client/src/pages/Sdk/index.js | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/packages/client/src/components/RoomSelector/index.js b/packages/client/src/components/RoomSelector/index.js index cd261b1520..86275a8bd3 100644 --- a/packages/client/src/components/RoomSelector/index.js +++ b/packages/client/src/components/RoomSelector/index.js @@ -43,7 +43,7 @@ const convertToItems = (folders) => { const icon = logo.medium ? logo.medium : getRoomLogo(roomType); const color = logo.color; - return { id, label: title, icon, color }; + return { id, label: title, icon, color, logo, roomType }; }); return items; diff --git a/packages/client/src/pages/Sdk/index.js b/packages/client/src/pages/Sdk/index.js index a0243ad44b..4720d344ec 100644 --- a/packages/client/src/pages/Sdk/index.js +++ b/packages/client/src/pages/Sdk/index.js @@ -12,6 +12,7 @@ import { createPasswordHash, frameCallCommand, } from "@docspace/common/utils"; +import { RoomsType } from "@docspace/common/constants"; const Sdk = ({ frameConfig, @@ -25,6 +26,8 @@ const Sdk = ({ getSettings, user, updateProfileCulture, + getRoomsIcon, + getPrimaryLink, }) => { useEffect(() => { window.addEventListener("message", handleMessage, false); @@ -118,8 +121,17 @@ const Sdk = ({ }; const onSelectRoom = useCallback( - (data) => { - data[0].icon = toRelativeUrl(data[0].icon); + async (data) => { + if (data[0].logo.large !== "") { + data[0].icon = toRelativeUrl(data[0].logo.large); + } else { + data[0].icon = await getRoomsIcon(data[0].roomType, false, 32); + } + + if (data[0].roomType === RoomsType.PublicRoom) { + const { sharedTo } = await getPrimaryLink(data[0].id); + data[0].requestToken = sharedTo?.requestToken; + } frameCallEvent({ event: "onSelectCallback", data }); }, @@ -180,13 +192,14 @@ const Sdk = ({ return component; }; -export default inject(({ auth, settingsStore, peopleStore }) => { +export default inject(({ auth, settingsStore, peopleStore, filesStore }) => { const { login, logout, userStore } = auth; const { theme, setFrameConfig, frameConfig, getSettings, isLoaded } = auth.settingsStore; const { loadCurrentUser, user } = userStore; const { updateProfileCulture } = peopleStore.targetUserStore; - const { getIcon } = settingsStore; + const { getIcon, getRoomsIcon } = settingsStore; + const { getPrimaryLink } = filesStore; return { theme, @@ -197,8 +210,10 @@ export default inject(({ auth, settingsStore, peopleStore }) => { getSettings, loadCurrentUser, getIcon, + getRoomsIcon, isLoaded, updateProfileCulture, user, + getPrimaryLink, }; })(observer(Sdk));