Web: Editor: Optimization - Removing unnecessary api requests.
This commit is contained in:
parent
3d361fe268
commit
a032b83a32
@ -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";
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user