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"; import { Device } from '../../utils/device'; import SvgIcon from '@common/lib/component/SvgIcon'; import IconExpandDownIos from '@common-ios-icons/icon-expand-down.svg?ios'; import IconExpandDownAndroid from '@common-android-icons/icon-expand-down.svg'; const VersionHistoryView = inject('storeVersionHistory', 'users')(observer(props => { const { t } = useTranslation(); const usersStore = props.users; const historyStore = props.storeVersionHistory; const currentVersion = historyStore.currentVersion; const arrVersions = historyStore.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) => { const value = revision.version; const arrVersion = result.find(arr => { return arr[0].version === value; }); if (arrVersion) { arrVersion.push(revision); } else { result.push([revision]); } return result; }, []); } return ( {Device.phone ? {Device.ios ? : } : !isNavigate && {Device.ios ? : } } {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(AscCommon.UserInfoParser.getParsedName(version.username))}
{(version === currentVersion && !version.selected && version.canRestore) &&
}
) })}
) }) : null}
) })); export default VersionHistoryView;