Merge branch 'hotfix/v2.6.1' into bugfix/65023

This commit is contained in:
Alexey Safronov 2024-07-31 16:58:42 +04:00
commit 8b5ecd7154
3 changed files with 76 additions and 63 deletions

View File

@ -26,10 +26,9 @@
import React, { useMemo, useState, useCallback, useEffect } from "react"; import React, { useMemo, useState, useCallback, useEffect } from "react";
import { useTranslation, Trans } from "react-i18next"; import { useTranslation } from "react-i18next";
import { inject, observer } from "mobx-react"; import { inject, observer } from "mobx-react";
import { toastr } from "@docspace/shared/components/toast";
import { import {
Events, Events,
FilesSelectorFilterTypes, FilesSelectorFilterTypes,
@ -78,7 +77,6 @@ import FilesSelector from "../FilesSelector";
import LeaveRoomDialog from "../dialogs/LeaveRoomDialog"; import LeaveRoomDialog from "../dialogs/LeaveRoomDialog";
import ChangeRoomOwnerPanel from "../panels/ChangeRoomOwnerPanel"; import ChangeRoomOwnerPanel from "../panels/ChangeRoomOwnerPanel";
import { CreatedPDFFormDialog } from "../dialogs/CreatedPDFFormDialog";
import { PDFFormEditingDialog } from "../dialogs/PDFFormEditingDialog"; import { PDFFormEditingDialog } from "../dialogs/PDFFormEditingDialog";
import { SharePDFFormDialog } from "../dialogs/SharePDFFormDialog"; import { SharePDFFormDialog } from "../dialogs/SharePDFFormDialog";
import { FillPDFDialog } from "../dialogs/FillPDFDialog"; import { FillPDFDialog } from "../dialogs/FillPDFDialog";
@ -141,13 +139,6 @@ const Panels = (props) => {
shareCollectSelector, shareCollectSelector,
} = props; } = props;
const [createPDFFormFile, setCreatePDFFormFile] = useState({
visible: false,
file: null,
localKey: "",
onClose: null,
});
const [sharePDFForm, setSharePDFForm] = useState({ const [sharePDFForm, setSharePDFForm] = useState({
visible: false, visible: false,
data: null, data: null,
@ -175,41 +166,6 @@ const Panels = (props) => {
return text[selectFileFormRoomFilterParam]; return text[selectFileFormRoomFilterParam];
}, [selectFileFormRoomFilterParam, t]); }, [selectFileFormRoomFilterParam, t]);
const handleCreatePDFFormFile = useCallback(
/**
* @param {CustomEvent} event
*/
(event) => {
const { file, show, localKey } = event.detail;
if (!show) {
return toastr.success(
<Trans
ns="PDFFormDialog"
i18nKey="PDFFormIsReadyToast"
components={{ 1: <strong /> }}
values={{ filename: file.title }}
/>,
);
}
setCreatePDFFormFile({
visible: true,
file,
localKey,
onClose: () => {
setCreatePDFFormFile({
visible: false,
onClose: null,
file: null,
localKey: "",
});
},
});
},
[],
);
const handleSharePDFForm = useCallback( const handleSharePDFForm = useCallback(
/** /**
* @param {CustomEvent} event * @param {CustomEvent} event
@ -229,20 +185,12 @@ const Panels = (props) => {
); );
useEffect(() => { useEffect(() => {
window.addEventListener(
Events.CREATE_PDF_FORM_FILE,
handleCreatePDFFormFile,
);
window.addEventListener(Events.Share_PDF_Form, handleSharePDFForm); window.addEventListener(Events.Share_PDF_Form, handleSharePDFForm);
return () => { return () => {
window.removeEventListener(
Events.CREATE_PDF_FORM_FILE,
handleCreatePDFFormFile,
);
window.removeEventListener(Events.Share_PDF_Form, handleSharePDFForm); window.removeEventListener(Events.Share_PDF_Form, handleSharePDFForm);
}; };
}, [handleCreatePDFFormFile, handleSharePDFForm]); }, [handleSharePDFForm]);
return [ return [
settingsPluginDialogVisible && ( settingsPluginDialogVisible && (
@ -357,12 +305,6 @@ const Panels = (props) => {
<ChangeRoomOwnerPanel key="change-room-owner" /> <ChangeRoomOwnerPanel key="change-room-owner" />
), ),
shareFolderDialogVisible && <ShareFolderDialog key="share-folder-dialog" />, shareFolderDialogVisible && <ShareFolderDialog key="share-folder-dialog" />,
createPDFFormFile.visible && (
<CreatedPDFFormDialog
key="created-pdf-form-dialog"
{...createPDFFormFile}
/>
),
pdfFormEditVisible && <PDFFormEditingDialog key="pdf-form-edit-dialog" />, pdfFormEditVisible && <PDFFormEditingDialog key="pdf-form-edit-dialog" />,
sharePDFForm.visible && ( sharePDFForm.visible && (
<SharePDFFormDialog key="share-pdf-form-dialog" {...sharePDFForm} /> <SharePDFFormDialog key="share-pdf-form-dialog" {...sharePDFForm} />

View File

@ -24,12 +24,13 @@
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 // content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// 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 { useState, useEffect, useCallback, useRef, memo } from "react"; import { useState, useEffect, useCallback, useRef } from "react";
import { Trans } from "react-i18next";
import { inject, observer } from "mobx-react"; import { inject, observer } from "mobx-react";
import { FileAction } from "@docspace/shared/enums"; import { FileAction } from "@docspace/shared/enums";
import { Events } from "@docspace/shared/enums"; import { Events } from "@docspace/shared/enums";
import { toastr } from "@docspace/shared/components/toast";
import CreateEvent from "./CreateEvent"; import CreateEvent from "./CreateEvent";
import RenameEvent from "./RenameEvent"; import RenameEvent from "./RenameEvent";
@ -40,6 +41,8 @@ import EditGroupEvent from "./GroupEvents/EditGroupEvent";
import ChangeUserTypeEvent from "./ChangeUserTypeEvent"; import ChangeUserTypeEvent from "./ChangeUserTypeEvent";
import CreatePluginFile from "./CreatePluginFileEvent"; import CreatePluginFile from "./CreatePluginFileEvent";
import ChangeQuotaEvent from "./ChangeQuotaEvent"; import ChangeQuotaEvent from "./ChangeQuotaEvent";
import { CreatedPDFFormDialog } from "../dialogs/CreatedPDFFormDialog";
const GlobalEvents = ({ enablePlugins, eventListenerItemsList }) => { const GlobalEvents = ({ enablePlugins, eventListenerItemsList }) => {
const [createDialogProps, setCreateDialogProps] = useState({ const [createDialogProps, setCreateDialogProps] = useState({
visible: false, visible: false,
@ -98,6 +101,13 @@ const GlobalEvents = ({ enablePlugins, eventListenerItemsList }) => {
onClose: null, onClose: null,
}); });
const [createPDFFormFile, setCreatePDFFormFile] = useState({
visible: false,
file: null,
localKey: "",
onClose: null,
});
const eventHandlersList = useRef([]); const eventHandlersList = useRef([]);
const onCreate = useCallback((e) => { const onCreate = useCallback((e) => {
@ -236,6 +246,45 @@ const GlobalEvents = ({ enablePlugins, eventListenerItemsList }) => {
[enablePlugins], [enablePlugins],
); );
const handleCreatePDFFormFile = useCallback(
/**
* @typedef {Object} DetailType
* @property {import("@docspace/shared/api/files/types").TFile} file
* @property {boolean} show
* @property {string} localKey
* @param {CustomEvent<DetailType>} event
*/
(event) => {
const { file, show, localKey } = event.detail;
if (!show) {
return toastr.success(
<Trans
ns="PDFFormDialog"
i18nKey="PDFFormIsReadyToast"
components={{ 1: <strong /> }}
values={{ filename: file.title }}
/>,
);
}
setCreatePDFFormFile({
visible: true,
file,
localKey,
onClose: () => {
setCreatePDFFormFile({
visible: false,
onClose: null,
file: null,
localKey: "",
});
},
});
},
[],
);
const onChangeQuota = useCallback((e) => { const onChangeQuota = useCallback((e) => {
const { payload } = e; const { payload } = e;
@ -261,6 +310,21 @@ const GlobalEvents = ({ enablePlugins, eventListenerItemsList }) => {
}, },
}); });
}, []); }, []);
useEffect(() => {
window.addEventListener(
Events.CREATE_PDF_FORM_FILE,
handleCreatePDFFormFile,
);
return () => {
window.removeEventListener(
Events.CREATE_PDF_FORM_FILE,
handleCreatePDFFormFile,
);
};
}, [handleCreatePDFFormFile]);
useEffect(() => { useEffect(() => {
window.addEventListener(Events.CREATE, onCreate); window.addEventListener(Events.CREATE, onCreate);
window.addEventListener(Events.RENAME, onRename); window.addEventListener(Events.RENAME, onRename);
@ -360,6 +424,12 @@ const GlobalEvents = ({ enablePlugins, eventListenerItemsList }) => {
changeQuotaDialog.visible && ( changeQuotaDialog.visible && (
<ChangeQuotaEvent key={Events.CHANGE_QUOTA} {...changeQuotaDialog} /> <ChangeQuotaEvent key={Events.CHANGE_QUOTA} {...changeQuotaDialog} />
), ),
createPDFFormFile.visible && !createDialogProps.visible && (
<CreatedPDFFormDialog
key="created-pdf-form-dialog"
{...createPDFFormFile}
/>
),
]; ];
}; };

View File

@ -53,6 +53,7 @@ import config from "PACKAGE_FILE";
import { thumbnailStatuses } from "@docspace/client/src/helpers/filesConstants"; import { thumbnailStatuses } from "@docspace/client/src/helpers/filesConstants";
import { getDaysRemaining } from "@docspace/shared/utils/common"; import { getDaysRemaining } from "@docspace/shared/utils/common";
import { import {
LOADER_TIMEOUT,
MEDIA_VIEW_URL, MEDIA_VIEW_URL,
PDF_FORM_DIALOG_KEY, PDF_FORM_DIALOG_KEY,
ROOMS_PROVIDER_TYPE_NAME, ROOMS_PROVIDER_TYPE_NAME,
@ -380,7 +381,7 @@ class FilesStore {
socketHelper.on("s:modify-room", (option) => { socketHelper.on("s:modify-room", (option) => {
switch (option.cmd) { switch (option.cmd) {
case "create-form": case "create-form":
this.wsCreatedPDFForm(option); setTimeout(() => this.wsCreatedPDFForm(option), LOADER_TIMEOUT * 2);
break; break;
default: default: