import React, { useEffect } from 'react'; import { connect } from 'react-redux'; import { NoContent, Loader, Pagination, Button } from 'UI'; import { List } from 'immutable'; import SessionItem from 'Shared/SessionItem'; import withPermissions from 'HOCs/withPermissions'; import { KEYS } from 'Types/filter/customFilter'; import { applyFilter } from 'Duck/liveSearch'; import { FilterKey } from 'App/types/filter/filterType'; import { addFilterByKeyAndValue, updateCurrentPage } from 'Duck/liveSearch'; import Select from 'Shared/Select'; import SortOrderButton from 'Shared/SortOrderButton'; import { capitalize } from 'App/utils'; import LiveSessionReloadButton from 'Shared/LiveSessionReloadButton'; import cn from 'classnames'; import AnimatedSVG, { ICONS } from 'Shared/AnimatedSVG/AnimatedSVG'; import { numberWithCommas } from 'App/utils'; const AUTOREFRESH_INTERVAL = 2 * 60 * 1000; const PER_PAGE = 10; interface Props { loading: boolean; metaListLoading: boolean; list: List; // fetchLiveList: () => Promise, applyFilter: (filter: any) => void; filter: any; // addAttribute: (obj: any) => void, addFilterByKeyAndValue: (key: FilterKey, value: string) => void; updateCurrentPage: (page: number) => void; currentPage: number; totla: number; metaList: any; sort: any; total: number; } function LiveSessionList(props: Props) { const { loading, metaListLoading, filter, list, currentPage, total, metaList = [], sort } = props; var timeoutId: any; const { filters } = filter; const hasUserFilter = filters.map((i: any) => i.key).includes(KEYS.USERID); const sortOptions = [{ label: 'Start Time', value: 'timestamp' }].concat( metaList .map((i: any) => ({ label: capitalize(i), value: i, })) .toJS() ); useEffect(() => { if (metaListLoading) return; const _filter = { ...filter }; if (sortOptions[1] && !filter.sort) { _filter.sort = sortOptions[1].value; } props.applyFilter(_filter); timeout(); return () => { clearTimeout(timeoutId); }; }, [metaListLoading]); const onUserClick = (userId: string, userAnonymousId: string) => { if (userId) { props.addFilterByKeyAndValue(FilterKey.USERID, userId); } else { props.addFilterByKeyAndValue(FilterKey.USERANONYMOUSID, userAnonymousId); } }; const onSortChange = ({ value }: any) => { props.applyFilter({ sort: value.value }); }; const timeout = () => { timeoutId = setTimeout(() => { props.applyFilter({ ...filter }); timeout(); }, AUTOREFRESH_INTERVAL); }; return (

Co-Browse {/* {numberWithCommas(total)} */}

props.applyFilter({ ...filter })} />
Sort By