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'; const PER_PAGE = 10; interface Props { userId: string; hash: string; name: string; } function UserSessionsModal(props: Props) { 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 Sessions
No recordings found.
}>
{data.sessions.map((session: any) => (
))}
{/* showing x to x of total sessions */} Showing {(filter.page - 1) * PER_PAGE + 1} to{' '} {(filter.page - 1) * PER_PAGE + data.sessions.length} of{' '} {data.total} sessions.
filter.update('page', page)} limit={PER_PAGE} debounceRequest={1000} />
); } export default observer(UserSessionsModal);