From 24dfa1a604c26f8dd3dfca858453619ea2d41f7e Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Thu, 14 Sep 2023 14:12:48 +0300 Subject: [PATCH] =?UTF-8?q?[common]=20=D0=A1hange=20versions=20filtering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/mobile/lib/view/VersionHistory.jsx | 56 +++++++++++-------- 1 file changed, 32 insertions(+), 24 deletions(-) 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) && -
- -
- } -
- ) - })} -
-
- ) - })} + {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) && +
+ +
+ } +
+ ) + })} +
+
+ ) + }) : null} ) }));