diff --git a/apps/common/mobile/lib/view/VersionHistory.jsx b/apps/common/mobile/lib/view/VersionHistory.jsx index 8c4b5755ff..85f3a78a30 100644 --- a/apps/common/mobile/lib/view/VersionHistory.jsx +++ b/apps/common/mobile/lib/view/VersionHistory.jsx @@ -1,4 +1,4 @@ -import React, { useCallback } from 'react'; +import React, { useCallback, useEffect, useState } from 'react'; import { Page, Navbar, BlockTitle, List, ListItem, Icon, NavRight, Link } from "framework7-react"; import { useTranslation } from "react-i18next"; import { observer, inject } from "mobx-react"; @@ -10,15 +10,22 @@ const VersionHistoryView = inject('storeVersionHistory', 'users')(observer(props const historyStore = props.storeVersionHistory; const currentVersion = historyStore.currentVersion; const arrVersions = historyStore.arrVersions; - const filteredVersions = groupByVersions(arrVersions); + const [filteredVersions, setFilteredVersions] = useState([]); const isNavigate = props.isNavigate; const usersVersions = historyStore.usersVersions; + useEffect(() => { + if(arrVersions.length > 0) { + const filteredVersions = groupByVersions(arrVersions); + setFilteredVersions(filteredVersions); + } + }, [arrVersions]); + const handleClickRevision = useCallback(version => { if(version !== currentVersion) { props.onSelectRevision(version); } - }); + }, []); function groupByVersions(arr) { return arr.reduce((result, revision) => { @@ -55,27 +62,28 @@ const VersionHistoryView = inject('storeVersionHistory', 'users')(observer(props } - {filteredVersions.map((versions, index) => { - return ( - - {`${versions.find(ver => ver.selected) ? t('Common.VersionHistory.textCurrent') + ' - ' : ''} ${t('Common.VersionHistory.textVersion')} ${versions[0].revision}`} - - {versions.map((version, index) => { - return ( - handleClickRevision(version)}> - user.id === version.userid).color}}>{usersStore.getInitials(version.username)} - {(version === currentVersion && !version.selected && version.canRestore) && - - props.onRestoreRevision(version)}>{t('Common.VersionHistory.textRestore')} - - } - - ) - })} - - - ) - })} + {filteredVersions.length > 0 ? + filteredVersions.map((versions, index) => { + return ( + + {`${versions.find(ver => ver.selected) ? t('Common.VersionHistory.textCurrent') + ' - ' : ''} ${t('Common.VersionHistory.textVersion')} ${versions[0].revision}`} + + {versions.map((version, index) => { + return ( + handleClickRevision(version)}> + user.id === version.userid).color}}>{usersStore.getInitials(version.username)} + {(version === currentVersion && !version.selected && version.canRestore) && + + props.onRestoreRevision(version)}>{t('Common.VersionHistory.textRestore')} + + } + + ) + })} + + + ) + }) : null} ) }));