import React from 'react'; import { Loader, Pagination, Tooltip, Button } from 'UI'; import { connect } from 'react-redux'; import SessionItem from 'Shared/SessionItem'; import { addFilterByKeyAndValue, updateCurrentPage, applyFilter } from 'Duck/liveSearch'; import { List } from 'immutable'; import { FilterKey } from 'App/types/filter/filterType'; import Select from 'Shared/Select'; import SortOrderButton from 'Shared/SortOrderButton'; import { KEYS } from 'Types/filter/customFilter'; import { capitalize } from 'App/utils'; import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import { fetchList as fetchMeta } from 'Duck/customField'; import AssistSearchField from 'App/components/Assist/AssistSearchField'; import LiveSessionSearch from 'Shared/LiveSessionSearch'; import cn from 'classnames'; import Session from 'App/mstore/types/session'; const PER_PAGE = 10; interface OwnProps {} interface ConnectProps { loading: boolean; metaListLoading: boolean; list: List; filter: any; currentPage: number; metaList: any; sort: any; total: number; replaceTarget?: string; addFilterByKeyAndValue: (key: FilterKey, value: string) => void; updateCurrentPage: (page: number) => void; applyFilter: (filter: any) => void; onAdd: () => void; fetchMeta: () => void; } type Props = OwnProps & ConnectProps; function AssistSessionsModal(props: Props) { const { assistMultiviewStore } = useStore(); const { loading, list, metaList = [], filter, currentPage, total, onAdd, fetchMeta } = props; const onUserClick = () => false; const { filters } = filter; const hasUserFilter = filters.map((i: any) => i.key).includes(KEYS.USERID); const sortOptions = metaList .map((i: any) => ({ label: capitalize(i), value: i, })) .toJS(); React.useEffect(() => { if (total === 0) { reloadSessions(); } fetchMeta(); }, []); const reloadSessions = () => props.applyFilter({ ...filter }); const onSortChange = ({ value }: any) => { props.applyFilter({ sort: value.value }); }; const onSessionAdd = (session: Session) => { if (props.replaceTarget) { assistMultiviewStore.replaceSession(props.replaceTarget, session); } else { assistMultiviewStore.addSession(session); } assistMultiviewStore.fetchAgentTokenInfo(session.sessionId).then(() => onAdd()); }; return (
Sort By 0}>