Merge branch 'release/rc-v1.2.0' of github.com:ONLYOFFICE/DocSpace into release/rc-v1.2.0

This commit is contained in:
Alexey Bannov 2022-12-26 20:30:20 +03:00
commit 61607973ae
7 changed files with 822 additions and 762 deletions

View File

@ -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);

View File

@ -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 + ""]);

View File

@ -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,

View File

@ -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);

View File

@ -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) => {

View File

@ -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",

1544
yarn.lock

File diff suppressed because it is too large Load Diff