openreplay/frontend/app/components/Assist/components/SessionList/SessionList.tsx
2021-12-24 22:45:27 +05:30

40 lines
No EOL
1.1 KiB
TypeScript

import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { fetchLiveList } from 'Duck/sessions';
import { Loader, NoContent } from 'UI';
import SessionItem from 'Shared/SessionItem';
interface Props {
loading: boolean,
list: any,
session: any,
fetchLiveList: () => void,
}
function SessionList(props: Props) {
useEffect(() => {
props.fetchLiveList();
}, [])
return (
<Loader loading={props.loading}>
<NoContent
show={ !props.loading && (props.list.length === 0 )}
title="No recordings found."
>
<div className="p-4">
{ props.list.map(session => <SessionItem key={ session.sessionId } session={ session } />) }
</div>
</NoContent>
</Loader>
);
}
export default connect(state => {
const session = state.getIn([ 'sessions', 'current' ]);
return {
session,
list: state.getIn(['sessions', 'liveSessions'])
.filter(i => i.userId === session.userId && i.sessionId !== session.sessionId),
loading: state.getIn([ 'sessions', 'fetchLiveListRequest', 'loading' ]),
}
}, { fetchLiveList })(SessionList);