From 029e6534af1387b72bd06574bbda47250654e9f2 Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Tue, 7 May 2024 13:07:22 +0300 Subject: [PATCH] Web: Client: Added check for differences between selected options for the room editing dialog. --- .../components/GlobalEvents/EditRoomEvent.js | 2 +- .../CreateEditRoomDialog/EditRoomDialog.js | 13 ++++++++++-- .../sub-components/Watermarks/ViewerInfo.js | 1 - .../sub-components/Watermarks/index.js | 4 +++- .../client/src/store/CreateEditRoomStore.js | 20 +++++++++++++++++-- 5 files changed, 33 insertions(+), 7 deletions(-) diff --git a/packages/client/src/components/GlobalEvents/EditRoomEvent.js b/packages/client/src/components/GlobalEvents/EditRoomEvent.js index 580807f8b0..c09ada66b8 100644 --- a/packages/client/src/components/GlobalEvents/EditRoomEvent.js +++ b/packages/client/src/components/GlobalEvents/EditRoomEvent.js @@ -291,7 +291,7 @@ const EditRoomEvent = ({ const [tags, watermarks] = await Promise.all(requests); setFetchedTags(tags); - setWatermarks(watermarks); + setWatermarks(watermarks, true); setIsInitLoading(false); }; diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js index 73a4c3a2f7..39a25dec30 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js @@ -25,6 +25,7 @@ // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode import React, { useState, useEffect, useRef, useCallback } from "react"; +import { inject, observer } from "mobx-react"; import TagHandler from "./handlers/TagHandler"; import SetRoomParams from "./sub-components/SetRoomParams"; @@ -43,6 +44,7 @@ const EditRoomDialog = ({ fetchedTags, fetchedImage, isInitLoading, + isEqualWatermarkChanges, }) => { const [isScrollLocked, setIsScrollLocked] = useState(false); const [isValidTitle, setIsValidTitle] = useState(true); @@ -77,7 +79,8 @@ const EditRoomDialog = ({ currentParams.icon.uploadedFile === undefined)) || prevParams.icon.uploadedFile === currentParams.icon.uploadedFile) && prevParams.quota === currentParams.quota && - prevParams.indexing === currentParams.indexing + prevParams.indexing === currentParams.indexing && + isEqualWatermarkChanges() ); }; @@ -184,4 +187,10 @@ const EditRoomDialog = ({ ); }; -export default EditRoomDialog; +export default inject(({ createEditRoomStore }) => { + const { isEqualWatermarkChanges } = createEditRoomStore; + + return { + isEqualWatermarkChanges, + }; +})(observer(EditRoomDialog)); diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/ViewerInfo.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/ViewerInfo.js index dbc806aafe..e7c3d5427e 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/ViewerInfo.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/ViewerInfo.js @@ -118,7 +118,6 @@ const ViewerInfoWatermark = ({ scale value={textValue} tabIndex={1} - isAutoFocussed onChange={onTextChange} /> diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/index.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/index.js index bdefad0bcc..11280b2cfd 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/index.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/Watermarks/index.js @@ -29,10 +29,10 @@ import { useTranslation } from "react-i18next"; import { inject, observer } from "mobx-react"; import { RadioButtonGroup } from "@docspace/shared/components/radio-button-group"; +import { WatermarkAdditions } from "@docspace/shared/enums"; import ViewerInfoWatermark from "./ViewerInfo"; import { StyledBody } from "./StyledComponent"; -import { WatermarkAdditions } from "@docspace/shared/enums"; const imageWatermark = "image", viewerInfoWatermark = "viewerInfo"; @@ -124,6 +124,8 @@ const Watermarks = ({ setWatermarks, watermarksSettings, isEdit }) => { additions: WatermarkAdditions.UserName, }); } + + return () => setWatermarks(null); }, []); const onSelectType = (e) => { diff --git a/packages/client/src/store/CreateEditRoomStore.js b/packages/client/src/store/CreateEditRoomStore.js index 109afd0e6f..26c2bd391f 100644 --- a/packages/client/src/store/CreateEditRoomStore.js +++ b/packages/client/src/store/CreateEditRoomStore.js @@ -25,6 +25,8 @@ // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode import { makeAutoObservable } from "mobx"; +import isEqual from "lodash/isEqual"; + import { toastr } from "@docspace/shared/components/toast"; import { isDesktop } from "@docspace/shared/utils"; import FilesFilter from "@docspace/shared/api/files/filter"; @@ -93,7 +95,17 @@ class CreateEditRoomStore { this.onClose = onClose; }; - setWatermarks = (watermarksSettings) => { + setWatermarks = (watermarksSettings, isInit = false) => { + if (isInit) { + this.initialWatermarksSettings = { + ...watermarksSettings, + enabled: true, + }; + + this.watermarksSettings = this.initialWatermarksSettings; + return; + } + if (!watermarksSettings) { this.watermarksSettings = null; return; @@ -102,10 +114,14 @@ class CreateEditRoomStore { this.watermarksSettings = { ...this.watermarksSettings, ...watermarksSettings, - enabled: true, }; }; + isEqualWatermarkChanges = () => { + + return isEqual(this.watermarksSettings, this.initialWatermarksSettings); + }; + onCreateRoom = async (withConfirm = false, t) => { const roomParams = this.roomParams;