import React, { useEffect, useState } from 'react' import { RouteComponentProps, useHistory } from 'react-router-dom' import { getClient, killSession, restartSession, startSession } from '../api' import { SessionPictures } from '../components/SessionPictures' import { StatusChip } from '../components/StatusChip' import { Button, Divider, message, Popconfirm, Row, Typography } from 'antd' import { Content } from 'antd/lib/layout/layout' import { Client } from '../types' type Props = RouteComponentProps<{ clientId: string }> export const Session = (props: Props) => { const history = useHistory() const { clientId } = props.match.params const [client, setClient] = useState(null) const [active, setActive] = useState(false) const handleStartSession = async () => { message.loading('Photo sequence starting! Stand by...') await startSession(clientId) setActive(true) } const handleRestartSession = async () => { setActive(false) message.loading( 'Deleting photos & restarting capture sequence! Stand by...', ) await restartSession(clientId) setActive(true) } const handleExit = async () => { history.push('/') } const handleNuke = async () => { await killSession(clientId) message.success('Photos Deleted! Going back to dashboard') history.push('/') } useEffect(() => { const get = async () => { const client = await getClient(clientId) setClient(client) if (client.has_photos) setActive(true) } get() }, [clientId]) return ( Session View Name: {client?.name} Email: {client?.email} Phone: {client?.phone} {active && } ) }