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