import React, { useEffect } from 'react'; import { withSiteId, session as sessionRoute } from 'App/routes'; import AutoplayToggle from 'Shared/AutoplayToggle/AutoplayToggle'; import { withRouter, RouteComponentProps } from 'react-router-dom'; import cn from 'classnames'; import { LeftOutlined, RightOutlined } from '@ant-design/icons'; import { Button, Popover } from 'antd'; import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import { useTranslation } from 'react-i18next'; const PER_PAGE = 10; interface Props extends RouteComponentProps { defaultList: any; currentPage: number; latestRequestTime: any; sessionIds: any; } function QueueControls(props: Props) { const { t } = useTranslation(); const { projectsStore, sessionStore, searchStore } = useStore(); const { previousId } = sessionStore; const { nextId } = sessionStore; const { total } = sessionStore; const sessionIds = sessionStore.sessionIds ?? []; const { setAutoplayValues } = sessionStore; const { match: { // @ts-ignore params: { sessionId }, }, } = props; const { currentPage } = searchStore; useEffect(() => { setAutoplayValues(); const totalPages = Math.ceil(total / PER_PAGE); const index = sessionIds.indexOf(sessionId); if (currentPage !== totalPages && index === sessionIds.length - 1) { sessionStore.fetchAutoplayList(currentPage + 1).then(setAutoplayValues); } }, []); const nextHandler = () => { const siteId = projectsStore.getSiteId().siteId!; props.history.push(withSiteId(sessionRoute(nextId), siteId)); }; const prevHandler = () => { const siteId = projectsStore.getSiteId().siteId!; props.history.push(withSiteId(sessionRoute(previousId), siteId)); }; return (