change(ui) - assist active sessions modal
This commit is contained in:
parent
80ae669ed1
commit
7b9a8a2a06
5 changed files with 42 additions and 22 deletions
|
|
@ -1,3 +1,4 @@
|
|||
import { useModal } from 'App/components/Modal';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { SlideModal, Avatar, TextEllipsis, Icon } from 'UI';
|
||||
import SessionList from '../SessionList';
|
||||
|
|
@ -10,6 +11,7 @@ interface Props {
|
|||
|
||||
const AssistTabs = (props: Props) => {
|
||||
const [showMenu, setShowMenu] = useState(false)
|
||||
const { showModal } = useModal();
|
||||
|
||||
return (
|
||||
<div className="relative mr-4">
|
||||
|
|
@ -18,19 +20,19 @@ const AssistTabs = (props: Props) => {
|
|||
<>
|
||||
<div
|
||||
className={stl.btnLink}
|
||||
onClick={() => setShowMenu(!showMenu)}
|
||||
onClick={() => showModal(<SessionList userId={props.userId} />, {})}
|
||||
>
|
||||
Active Sessions
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
<SlideModal
|
||||
{/* <SlideModal
|
||||
title={ <div>{props.userId}'s <span className="color-gray-medium">Live Sessions</span> </div> }
|
||||
isDisplayed={ showMenu }
|
||||
content={ showMenu && <SessionList /> }
|
||||
onClose={ () => setShowMenu(false) }
|
||||
/>
|
||||
/> */}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3,14 +3,17 @@ import { connect } from 'react-redux';
|
|||
import { fetchLiveList } from 'Duck/sessions';
|
||||
import { Loader, NoContent, Label } from 'UI';
|
||||
import SessionItem from 'Shared/SessionItem';
|
||||
import { useModal } from 'App/components/Modal';
|
||||
|
||||
interface Props {
|
||||
loading: boolean;
|
||||
list: any;
|
||||
session: any;
|
||||
userId: any;
|
||||
fetchLiveList: (params: any) => void;
|
||||
}
|
||||
function SessionList(props: Props) {
|
||||
const { hideModal } = useModal();
|
||||
useEffect(() => {
|
||||
const params: any = {};
|
||||
if (props.session.userId) {
|
||||
|
|
@ -20,25 +23,34 @@ function SessionList(props: Props) {
|
|||
}, []);
|
||||
|
||||
return (
|
||||
<Loader loading={props.loading}>
|
||||
<NoContent show={!props.loading && props.list.size === 0} title="No live sessions.">
|
||||
<div style={{ width: '45vw' }}>
|
||||
<div className="border-r shadow h-screen" style={{ backgroundColor: '#FAFAFA', zIndex: 999, width: '100%', minWidth: '800px' }}>
|
||||
<div className="p-4">
|
||||
{props.list.map((session: any) => (
|
||||
<div className="mb-6">
|
||||
{session.pageTitle && session.pageTitle !== '' && (
|
||||
<div className="flex items-center mb-2">
|
||||
<Label size="small" className="p-1">
|
||||
<span className="color-gray-medium">TAB</span>
|
||||
</Label>
|
||||
<span className="ml-2 font-medium">{session.pageTitle}</span>
|
||||
</div>
|
||||
)}
|
||||
<SessionItem key={session.sessionId} session={session} showActive={session.active} />
|
||||
</div>
|
||||
))}
|
||||
<div className="text-2xl">
|
||||
{props.userId}'s <span className="color-gray-medium">Live Sessions</span>{' '}
|
||||
</div>
|
||||
</div>
|
||||
</NoContent>
|
||||
</Loader>
|
||||
<Loader loading={props.loading}>
|
||||
<NoContent show={!props.loading && props.list.size === 0} title="No live sessions.">
|
||||
<div className="p-4">
|
||||
{props.list.map((session: any) => (
|
||||
<div className="mb-6">
|
||||
{session.pageTitle && session.pageTitle !== '' && (
|
||||
<div className="flex items-center mb-2">
|
||||
<Label size="small" className="p-1">
|
||||
<span className="color-gray-medium">TAB</span>
|
||||
</Label>
|
||||
<span className="ml-2 font-medium">{session.pageTitle}</span>
|
||||
</div>
|
||||
)}
|
||||
<SessionItem onClick={() => hideModal()} key={session.sessionId} session={session} showActive={session.active} />
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</NoContent>
|
||||
</Loader>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@
|
|||
transition: all 0.2s;
|
||||
box-shadow: 0px 2px 10px 0 $gray-light;
|
||||
border: 1px solid $active-blue-border;
|
||||
/* background-color: red; */
|
||||
}
|
||||
|
||||
&.red {
|
||||
|
|
|
|||
|
|
@ -17,9 +17,10 @@ interface Props {
|
|||
isAssist: boolean;
|
||||
viewed: boolean;
|
||||
sessionId: string;
|
||||
onClick?: () => void;
|
||||
}
|
||||
export default function PlayLink(props: Props) {
|
||||
const { isAssist, viewed, sessionId } = props
|
||||
const { isAssist, viewed, sessionId, onClick = null } = props
|
||||
const defaultIconName = getDefaultIconName(viewed)
|
||||
|
||||
const [isHovered, toggleHover] = useState(false)
|
||||
|
|
@ -31,7 +32,8 @@ export default function PlayLink(props: Props) {
|
|||
}, [isHovered, viewed])
|
||||
|
||||
return (
|
||||
<Link
|
||||
<Link
|
||||
onClick={onClick ? onClick : () => {}}
|
||||
to={ isAssist ? liveSessionRoute(sessionId) : sessionRoute(sessionId) }
|
||||
onMouseEnter={() => toggleHover(true)}
|
||||
onMouseLeave={() => toggleHover(false)}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ interface Props {
|
|||
showActive?: boolean;
|
||||
lastPlayedSessionId?: string;
|
||||
live?: boolean;
|
||||
onClick?: any
|
||||
}
|
||||
|
||||
function SessionItem(props: RouteComponentProps & Props) {
|
||||
|
|
@ -69,6 +70,7 @@ function SessionItem(props: RouteComponentProps & Props) {
|
|||
metaList = [],
|
||||
showActive = false,
|
||||
lastPlayedSessionId,
|
||||
onClick = null,
|
||||
} = props;
|
||||
|
||||
const {
|
||||
|
|
@ -179,6 +181,7 @@ function SessionItem(props: RouteComponentProps & Props) {
|
|||
isAssist={isAssist}
|
||||
sessionId={sessionId}
|
||||
viewed={viewed}
|
||||
onClick={onClick}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue