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