From b400a934072d898e0c75d79e8fa3d04b14eede14 Mon Sep 17 00:00:00 2001 From: Vladislav Makhov Date: Mon, 5 Apr 2021 15:07:58 +0300 Subject: [PATCH 1/2] web: files: remove api query, if cancelled or same title --- .../Section/Body/EditingWrapperComponent.js | 1 + .../Section/Body/FilesRow/FilesRowContent.js | 12 +++++-- .../Client/src/store/FilesActionsStore.js | 33 +++++++++---------- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/EditingWrapperComponent.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/EditingWrapperComponent.js index e5e2c2db49..8570815153 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/EditingWrapperComponent.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/EditingWrapperComponent.js @@ -116,6 +116,7 @@ const EditingWrapperComponent = (props) => { onClick={cancelUpdateItem} icon={cancelIcon} data-itemid={itemId} + data-action="cancel" onMouseEnter={setIsHoveredCancelHandler} onMouseLeave={setIsHoveredCancelHandler} isHovered={CancelIconIsHovered} diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRow/FilesRowContent.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRow/FilesRowContent.js index b920b96b5b..2b43af1ee4 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRow/FilesRowContent.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRow/FilesRowContent.js @@ -134,7 +134,10 @@ class FilesRowContent extends React.PureComponent { } completeAction = (id) => { - this.props.editCompleteAction(id, this.props.item); + const isCancel = + (id.currentTarget && id.currentTarget.dataset.action === "cancel") || + id.keyCode === 27; + this.props.editCompleteAction(id, this.props.item, isCancel); }; updateItem = () => { @@ -144,17 +147,20 @@ class FilesRowContent extends React.PureComponent { item, setIsLoading, fileActionId, + editCompleteAction, } = this.props; const { itemTitle } = this.state; const originalTitle = getTitleWithoutExst(item); setIsLoading(true); - if (originalTitle === itemTitle || itemTitle.trim() === "") { + const isSameTitle = + originalTitle.trim() === itemTitle.trim() || itemTitle.trim() === ""; + if (isSameTitle) { this.setState({ itemTitle: originalTitle, }); - return this.completeAction(fileActionId); + return editCompleteAction(fileActionId, item, isSameTitle); } item.fileExst diff --git a/products/ASC.Files/Client/src/store/FilesActionsStore.js b/products/ASC.Files/Client/src/store/FilesActionsStore.js index 91f92cb1b8..20e3af28ce 100644 --- a/products/ASC.Files/Client/src/store/FilesActionsStore.js +++ b/products/ASC.Files/Client/src/store/FilesActionsStore.js @@ -225,7 +225,7 @@ class FilesActionStore { }); }; - editCompleteAction = (id, selectedItem) => { + editCompleteAction = async (id, selectedItem, isCancelled = false) => { const { filter, folders, @@ -241,22 +241,21 @@ class FilesActionStore { const item = items.find((o) => o.id === id && !o.fileExst); //TODO: maybe need files find and folders find, not at one function? if (type === FileAction.Create || type === FileAction.Rename) { setIsLoading(true); - fetchFiles(this.selectedFolderStore.id, filter) - .then((data) => { - const newItem = (item && item.id) === -1 ? null : item; //TODO: not add new folders? - if (!selectedItem.fileExst) { - const path = data.selectedFolder.pathParts; - const newTreeFolders = treeFolders; - const folders = data.selectedFolder.folders; - loopTreeFolders(path, newTreeFolders, folders, null, newItem); - setTreeFolders(newTreeFolders); - } - }) - .finally(() => { - setAction({ type: null, id: null, extension: null }); - setIsLoading(false); - type === FileAction.Rename && this.onSelectItem(selectedItem); - }); + + if (!isCancelled) { + const data = await fetchFiles(this.selectedFolderStore.id, filter); + const newItem = (item && item.id) === -1 ? null : item; //TODO: not add new folders? + if (!selectedItem.fileExst) { + const path = data.selectedFolder.pathParts; + const newTreeFolders = treeFolders; + const folders = data.selectedFolder.folders; + loopTreeFolders(path, newTreeFolders, folders, null, newItem); + setTreeFolders(newTreeFolders); + } + } + setAction({ type: null, id: null, extension: null }); + setIsLoading(false); + type === FileAction.Rename && this.onSelectItem(selectedItem); } }; From 24e80979f5b5b141e61958611a0c50c3dc8cd3c3 Mon Sep 17 00:00:00 2001 From: TatianaLopaeva Date: Mon, 5 Apr 2021 15:18:24 +0300 Subject: [PATCH 2/2] Web: createUser: Fixed margin-top for mobile devices. --- .../src/components/pages/Confirm/sub-components/createUser.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/ASC.Web.Client/src/components/pages/Confirm/sub-components/createUser.js b/web/ASC.Web.Client/src/components/pages/Confirm/sub-components/createUser.js index 7b640a458e..f96b4b3df9 100644 --- a/web/ASC.Web.Client/src/components/pages/Confirm/sub-components/createUser.js +++ b/web/ASC.Web.Client/src/components/pages/Confirm/sub-components/createUser.js @@ -16,6 +16,7 @@ import EmailInput from "@appserver/components/email-input"; import PageLayout from "@appserver/common/components/PageLayout"; import { combineUrl, createPasswordHash } from "@appserver/common/utils"; import { AppServerConfig } from "@appserver/common/constants"; +import { isMobile } from "react-device-detect"; const inputWidth = "400px"; @@ -31,6 +32,7 @@ const ConfirmContainer = styled.div` .start-basis { align-items: flex-start; + ${isMobile && `margin-top: 56px;`} } .margin-left {