Merge branch 'release/rc-v1.2.0' of github.com:ONLYOFFICE/DocSpace into release/rc-v1.2.0
This commit is contained in:
commit
61607973ae
@ -30,7 +30,7 @@ class FilesListWrapper extends React.Component {
|
||||
|
||||
if (folderId !== prevProps.folderId) {
|
||||
if (isNextPageLoading) {
|
||||
this.source.cancel();
|
||||
this.abortController.abort();
|
||||
|
||||
this._isLoadNextPage = false;
|
||||
this.setState({
|
||||
@ -66,13 +66,12 @@ class FilesListWrapper extends React.Component {
|
||||
this._isLoadNextPage = true;
|
||||
this.setState({ isNextPageLoading: true }, async () => {
|
||||
try {
|
||||
this.CancelToken = axios.CancelToken;
|
||||
this.source = this.CancelToken.source();
|
||||
this.abortController = new AbortController();
|
||||
|
||||
const data = await getFolder(
|
||||
folderId,
|
||||
this.newFilter,
|
||||
this.source.token
|
||||
this.abortController.signal
|
||||
).catch((err) => {
|
||||
if (axios.isCancel(err)) {
|
||||
console.log("Request canceled", err.message);
|
||||
|
@ -106,6 +106,9 @@ class FilesStore {
|
||||
|
||||
isErrorRoomNotAvailable = false;
|
||||
|
||||
roomsController = null;
|
||||
filesController = null;
|
||||
|
||||
constructor(
|
||||
authStore,
|
||||
selectedFolderStore,
|
||||
@ -126,6 +129,9 @@ class FilesStore {
|
||||
this.thirdPartyStore = thirdPartyStore;
|
||||
this.accessRightsStore = accessRightsStore;
|
||||
|
||||
this.roomsController = new AbortController();
|
||||
this.filesController = new AbortController();
|
||||
|
||||
const { socketHelper, withPaging } = authStore.settingsStore;
|
||||
|
||||
socketHelper.on("s:modify-folder", async (opt) => {
|
||||
@ -805,6 +811,11 @@ class FilesStore {
|
||||
) => {
|
||||
const { setSelectedNode } = this.treeFoldersStore;
|
||||
|
||||
if (this.isLoading) {
|
||||
this.roomsController.abort();
|
||||
this.roomsController = new AbortController();
|
||||
}
|
||||
|
||||
this.scrollToTop();
|
||||
|
||||
const filterData = filter ? filter.clone() : FilesFilter.getDefault();
|
||||
@ -836,7 +847,7 @@ class FilesStore {
|
||||
setSelectedNode([folderId + ""]);
|
||||
|
||||
return api.files
|
||||
.getFolder(folderId, filterData)
|
||||
.getFolder(folderId, filterData, this.filesController.signal)
|
||||
.then(async (data) => {
|
||||
filterData.total = data.total;
|
||||
|
||||
@ -988,6 +999,11 @@ class FilesStore {
|
||||
) => {
|
||||
const { setSelectedNode, roomsFolderId } = this.treeFoldersStore;
|
||||
|
||||
if (this.isLoading) {
|
||||
this.filesController.abort();
|
||||
this.filesController = new AbortController();
|
||||
}
|
||||
|
||||
const filterData = !!filter ? filter.clone() : RoomsFilter.getDefault();
|
||||
|
||||
const filterStorageItem = localStorage.getItem(
|
||||
@ -1011,7 +1027,7 @@ class FilesStore {
|
||||
|
||||
const request = () =>
|
||||
api.rooms
|
||||
.getRooms(filterData)
|
||||
.getRooms(filterData, this.roomsController.signal)
|
||||
.then(async (data) => {
|
||||
if (!folderId) setSelectedNode([data.current.id + ""]);
|
||||
|
||||
|
@ -4,7 +4,6 @@ import uniqueid from "lodash/uniqueId";
|
||||
import sumBy from "lodash/sumBy";
|
||||
import { ConflictResolveType } from "@docspace/common/constants";
|
||||
import {
|
||||
getFolder,
|
||||
getFileInfo,
|
||||
getFolderInfo,
|
||||
getProgress,
|
||||
|
@ -50,7 +50,7 @@ export function getFolderPath(folderId) {
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getFolder(folderId, filter, cancelToken) {
|
||||
export function getFolder(folderId, filter, signal) {
|
||||
if (folderId && typeof folderId === "string") {
|
||||
folderId = encodeURIComponent(folderId.replace(/\\\\/g, "\\"));
|
||||
}
|
||||
@ -63,12 +63,9 @@ export function getFolder(folderId, filter, cancelToken) {
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/${params}`,
|
||||
signal,
|
||||
};
|
||||
|
||||
if (cancelToken) {
|
||||
options.cancelToken = cancelToken;
|
||||
}
|
||||
|
||||
return request(options).then((res) => {
|
||||
res.files = decodeDisplayName(res.files);
|
||||
res.folders = decodeDisplayName(res.folders);
|
||||
|
@ -2,10 +2,11 @@ import { request } from "../client";
|
||||
import { decodeDisplayName } from "../../utils";
|
||||
import { FolderType } from "../../constants";
|
||||
|
||||
export function getRooms(filter) {
|
||||
export function getRooms(filter, signal) {
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/rooms?${filter.toApiUrlParams()}`,
|
||||
signal,
|
||||
};
|
||||
|
||||
return request(options).then((res) => {
|
||||
|
@ -11,7 +11,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.15.4",
|
||||
"axios": "^0.21.4",
|
||||
"axios": "^0.22.0",
|
||||
"cross-fetch": "3.1.5",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"global": "^4.4.0",
|
||||
|
Loading…
Reference in New Issue
Block a user