Web: Editor: Optimization - Removing unnecessary api requests.

This commit is contained in:
Tatiana Lopaeva 2021-11-30 10:59:41 +03:00
parent 3d361fe268
commit a032b83a32

View File

@ -20,8 +20,6 @@ import {
setEncryptionKeys,
getEncryptionAccess,
getFileInfo,
getRecentFolderList,
getFolderInfo,
updateFile,
removeFromFavorite,
markAsFavorite,
@ -144,56 +142,6 @@ const Editor = () => {
docEditor.setFavorite(favorite);
};
const getRecent = async (config) => {
try {
const recentFolderList = await getRecentFolderList();
const filesArray = recentFolderList.files.slice(0, 25);
const recentFiles = filesArray.filter(
(file) =>
file.rootFolderType !== FolderType.SHARE &&
((config.documentType === text && file.fileType === 7) ||
(config.documentType === spreadSheet && file.fileType === 5) ||
(config.documentType === presentation && file.fileType === 6))
);
const groupedByFolder = recentFiles.reduce((r, a) => {
r[a.folderId] = [...(r[a.folderId] || []), a];
return r;
}, {});
const requests = Object.entries(groupedByFolder).map((item) =>
getFolderInfo(item[0])
.then((folderInfo) =>
Promise.resolve({
files: item[1],
folderInfo: folderInfo,
})
)
.catch((e) => console.error(e))
);
let recent = [];
let responses = await Promise.all(requests);
for (let res of responses) {
res.files.forEach((file) => {
const convertedData = convertRecentData(file, res.folderInfo);
if (Object.keys(convertedData).length !== 0)
recent.push(convertedData);
});
}
return recent;
} catch (e) {
console.error(e);
}
return null;
};
const initDesktop = (config) => {
const isEncryption = config?.editorConfig["encryptionKeys"] !== undefined;
@ -313,17 +261,6 @@ const Editor = () => {
initDesktop();
}
if (successAuth) {
const recent = await getRecent(config); //TODO: too slow for 1st loading
if (recent) {
config.editorConfig = {
...config.editorConfig,
recent: recent,
};
}
}
isSharingAccess = fileInfo && fileInfo.canShare;
if (view) {
@ -344,20 +281,6 @@ const Editor = () => {
}
};
const convertRecentData = (file, folder) => {
let obj = {};
const folderName = folder.title;
const fileName = file.title;
if (+fileId !== file.id)
obj = {
folder: folderName,
title: fileName,
url: file.webUrl,
};
return obj;
};
const isIPad = () => {
return isIOS && deviceType === "tablet";
};