/* eslint-disable i18next/no-literal-string */ import React, { useEffect } from 'react'; import { useStore } from 'App/mstore'; import { FilterKey } from 'App/types/filter/filterType'; import { NoContent, Pagination, Loader, Avatar } from 'UI'; import SessionItem from 'Shared/SessionItem'; import SelectDateRange from 'Shared/SelectDateRange'; import { useObserver, observer } from 'mobx-react-lite'; import { useModal } from 'App/components/Modal'; import AnimatedSVG, { ICONS } from 'Shared/AnimatedSVG/AnimatedSVG'; import { useTranslation } from 'react-i18next'; const PER_PAGE = 10; interface Props { userId: string; hash: string; name: string; } function UserSessionsModal(props: Props) { const { t } = useTranslation(); const { userId, hash, name } = props; const { sessionStore } = useStore(); const { hideModal } = useModal(); const [loading, setLoading] = React.useState(false); const [data, setData] = React.useState({ sessions: [], total: 0 }); const filter = useObserver(() => sessionStore.userFilter); const onDateChange = (period: any) => { filter.update('period', period); }; const fetchData = () => { setLoading(true); sessionStore .getSessions(filter) .then(setData) .catch(() => { console.log('error'); }) .finally(() => { setLoading(false); }); }; useEffect(() => { const userFilter = { key: FilterKey.USERID, value: [userId], operator: 'is', isEvent: false, }; filter.update('filters', [userFilter]); }, []); useEffect(fetchData, [filter.page, filter.startDate, filter.endDate]); return (
{name} 's {t('Sessions')}
{t('No recordings found')}
} >
{data.sessions.map((session: any) => (
))}
{/* showing x to x of total sessions */} {t('Showing')}{' '} {(filter.page - 1) * PER_PAGE + 1} {' '} {t('to')}{' '} {(filter.page - 1) * PER_PAGE + data.sessions.length} {' '} {t('of')} {data.total}  {t('sessions')}.
filter.update('page', page)} limit={PER_PAGE} debounceRequest={1000} />
); } export default observer(UserSessionsModal);