updaded history view loading mechanism

This commit is contained in:
mushka 2022-09-26 10:38:55 +03:00
parent 3a08253e67
commit 29eb6768b8

View File

@ -8,11 +8,11 @@ import {
import Avatar from "@docspace/components/avatar";
import Text from "@docspace/components/text";
import getCorrectDate from "@docspace/components/utils/getCorrectDate";
import { getUser } from "@docspace/common/api/people";
import { parseAndFormatDate } from "../../helpers/DetailsHelper";
import HistoryBlockMessage from "./HistoryBlockMessage";
import HistoryBlockItemList from "./HistoryBlockItemList";
import Loaders from "@docspace/common/components/Loaders";
const History = ({
t,
@ -22,10 +22,11 @@ const History = ({
culture,
getItemIcon,
getRoomHistory,
getHistory,
openFileAction,
}) => {
const [history, setHistory] = useState(null);
const [showLoader, setShowLoader] = useState(false);
const parseHistoryJSON = async (fetchedHistory) => {
let feeds = fetchedHistory.feeds;
@ -34,40 +35,55 @@ const History = ({
const feedsJSON = JSON.parse(feeds[i].json);
feedsJSON.author = await getUser(feedsJSON.AuthorId);
let groupFeeds = feeds[i].groupedFeeds;
let newGroupFeeds = [];
for (let j = 0; j < groupFeeds.length; j++) {
const groupFeedsJSON = JSON.parse(groupFeeds[j].json);
groupFeedsJSON.author = await getUser(groupFeedsJSON.AuthorId);
newGroupFeeds.push(groupFeedsJSON);
let newGroupedFeeds = [];
if (feeds[i].groupedFeeds) {
let groupFeeds = feeds[i].groupedFeeds;
for (let j = 0; j < groupFeeds.length; j++) {
const groupFeedsJSON = JSON.parse(groupFeeds[j].json);
newGroupedFeeds.push(groupFeedsJSON);
}
}
newFeeds.push({
...feeds[i],
json: feedsJSON,
groupedFeeds: newGroupFeeds,
groupedFeeds: newGroupedFeeds,
});
}
return { ...fetchedHistory, feeds: newFeeds };
};
const fetchHistory = async (itemId) => {
let module = "files";
if (selection.isRoom) module = "rooms";
else if (selection.isFolder) module = "folders";
let timerId;
if (history) timerId = setTimeout(() => setShowLoader(true), 1500);
let fetchedHistory = await getHistory(module, itemId);
fetchedHistory = await parseHistoryJSON(fetchedHistory);
clearTimeout(timerId);
console.log(fetchedHistory);
setHistory(fetchedHistory);
setSelection({ ...selection, history: fetchedHistory });
setShowLoader(false);
};
useEffect(async () => {
if (selection.history) {
setHistory(selection.history);
return;
}
if (!selection.isRoom) return;
let fetchedHistory = await getRoomHistory(selection.id);
fetchedHistory = await parseHistoryJSON(fetchedHistory);
console.log(fetchedHistory);
setHistory(fetchedHistory);
setSelection({ ...selection, history: fetchedHistory });
fetchHistory(selection.id);
}, [selection]);
if (!selection || !history) return null;
if (!history || showLoader)
return <Loaders.InfoPanelViewLoader view="history" />;
return (
<>
<StyledHistoryList>
@ -115,7 +131,6 @@ const History = ({
getItemIcon={getItemIcon}
openFileAction={openFileAction}
/>
{/* <HistoryBlockContent t={t} feed={feed.json} /> */}
</div>
</StyledHistoryBlock>
))}