Web: Client: Added check for differences between selected options for the room editing dialog.

This commit is contained in:
Tatiana Lopaeva 2024-05-07 13:07:22 +03:00
parent 3ffb98a9df
commit 029e6534af
5 changed files with 33 additions and 7 deletions

View File

@ -291,7 +291,7 @@ const EditRoomEvent = ({
const [tags, watermarks] = await Promise.all(requests); const [tags, watermarks] = await Promise.all(requests);
setFetchedTags(tags); setFetchedTags(tags);
setWatermarks(watermarks); setWatermarks(watermarks, true);
setIsInitLoading(false); setIsInitLoading(false);
}; };

View File

@ -25,6 +25,7 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React, { useState, useEffect, useRef, useCallback } from "react"; import React, { useState, useEffect, useRef, useCallback } from "react";
import { inject, observer } from "mobx-react";
import TagHandler from "./handlers/TagHandler"; import TagHandler from "./handlers/TagHandler";
import SetRoomParams from "./sub-components/SetRoomParams"; import SetRoomParams from "./sub-components/SetRoomParams";
@ -43,6 +44,7 @@ const EditRoomDialog = ({
fetchedTags, fetchedTags,
fetchedImage, fetchedImage,
isInitLoading, isInitLoading,
isEqualWatermarkChanges,
}) => { }) => {
const [isScrollLocked, setIsScrollLocked] = useState(false); const [isScrollLocked, setIsScrollLocked] = useState(false);
const [isValidTitle, setIsValidTitle] = useState(true); const [isValidTitle, setIsValidTitle] = useState(true);
@ -77,7 +79,8 @@ const EditRoomDialog = ({
currentParams.icon.uploadedFile === undefined)) || currentParams.icon.uploadedFile === undefined)) ||
prevParams.icon.uploadedFile === currentParams.icon.uploadedFile) && prevParams.icon.uploadedFile === currentParams.icon.uploadedFile) &&
prevParams.quota === currentParams.quota && 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));

View File

@ -118,7 +118,6 @@ const ViewerInfoWatermark = ({
scale scale
value={textValue} value={textValue}
tabIndex={1} tabIndex={1}
isAutoFocussed
onChange={onTextChange} onChange={onTextChange}
/> />
</div> </div>

View File

@ -29,10 +29,10 @@ import { useTranslation } from "react-i18next";
import { inject, observer } from "mobx-react"; import { inject, observer } from "mobx-react";
import { RadioButtonGroup } from "@docspace/shared/components/radio-button-group"; import { RadioButtonGroup } from "@docspace/shared/components/radio-button-group";
import { WatermarkAdditions } from "@docspace/shared/enums";
import ViewerInfoWatermark from "./ViewerInfo"; import ViewerInfoWatermark from "./ViewerInfo";
import { StyledBody } from "./StyledComponent"; import { StyledBody } from "./StyledComponent";
import { WatermarkAdditions } from "@docspace/shared/enums";
const imageWatermark = "image", const imageWatermark = "image",
viewerInfoWatermark = "viewerInfo"; viewerInfoWatermark = "viewerInfo";
@ -124,6 +124,8 @@ const Watermarks = ({ setWatermarks, watermarksSettings, isEdit }) => {
additions: WatermarkAdditions.UserName, additions: WatermarkAdditions.UserName,
}); });
} }
return () => setWatermarks(null);
}, []); }, []);
const onSelectType = (e) => { const onSelectType = (e) => {

View File

@ -25,6 +25,8 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import { makeAutoObservable } from "mobx"; import { makeAutoObservable } from "mobx";
import isEqual from "lodash/isEqual";
import { toastr } from "@docspace/shared/components/toast"; import { toastr } from "@docspace/shared/components/toast";
import { isDesktop } from "@docspace/shared/utils"; import { isDesktop } from "@docspace/shared/utils";
import FilesFilter from "@docspace/shared/api/files/filter"; import FilesFilter from "@docspace/shared/api/files/filter";
@ -93,7 +95,17 @@ class CreateEditRoomStore {
this.onClose = onClose; this.onClose = onClose;
}; };
setWatermarks = (watermarksSettings) => { setWatermarks = (watermarksSettings, isInit = false) => {
if (isInit) {
this.initialWatermarksSettings = {
...watermarksSettings,
enabled: true,
};
this.watermarksSettings = this.initialWatermarksSettings;
return;
}
if (!watermarksSettings) { if (!watermarksSettings) {
this.watermarksSettings = null; this.watermarksSettings = null;
return; return;
@ -102,10 +114,14 @@ class CreateEditRoomStore {
this.watermarksSettings = { this.watermarksSettings = {
...this.watermarksSettings, ...this.watermarksSettings,
...watermarksSettings, ...watermarksSettings,
enabled: true,
}; };
}; };
isEqualWatermarkChanges = () => {
return isEqual(this.watermarksSettings, this.initialWatermarksSettings);
};
onCreateRoom = async (withConfirm = false, t) => { onCreateRoom = async (withConfirm = false, t) => {
const roomParams = this.roomParams; const roomParams = this.roomParams;