users screen + userCard component
Some checks failed
Some checks failed
This commit is contained in:
@@ -1,15 +1,20 @@
|
||||
import React from 'react'
|
||||
import { useParams } from 'react-router-dom'
|
||||
|
||||
import {
|
||||
ErrorSpan,
|
||||
LessonItem,
|
||||
Lessonname,
|
||||
MainWrapper,
|
||||
StartWrapper,
|
||||
} from './style'
|
||||
import { api } from '../__data__/api/api'
|
||||
import dayjs from 'dayjs'
|
||||
import {
|
||||
Alert,
|
||||
AlertIcon,
|
||||
Box,
|
||||
Center,
|
||||
Container,
|
||||
Heading,
|
||||
Spinner,
|
||||
Text,
|
||||
Stack,
|
||||
} from '@chakra-ui/react'
|
||||
import { UserCard } from '../components/user-card'
|
||||
|
||||
const UserPage = () => {
|
||||
const { lessonId, accessId } = useParams()
|
||||
@@ -20,38 +25,67 @@ const UserPage = () => {
|
||||
skipPollingIfUnfocused: true,
|
||||
})
|
||||
|
||||
if (acc.isLoading) {
|
||||
return (
|
||||
<Container maxW="container.xl">
|
||||
<Center h="300px">
|
||||
<Spinner
|
||||
thickness="4px"
|
||||
speed="0.65s"
|
||||
emptyColor="gray.200"
|
||||
color="blue.500"
|
||||
size="xl"
|
||||
/>
|
||||
</Center>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<MainWrapper>
|
||||
<StartWrapper>
|
||||
{acc.isLoading && <h1>Отправляем запрос</h1>}
|
||||
{acc.isSuccess && <h1>Успешно</h1>}
|
||||
<Container>
|
||||
{acc.isLoading && <h1>Отправляем запрос</h1>}
|
||||
{acc.isSuccess && <h1>Успешно</h1>}
|
||||
|
||||
{acc.error && (
|
||||
<Box mb="6" mt="2">
|
||||
<Alert status="warning">
|
||||
<AlertIcon />
|
||||
{(acc as any).error?.data?.body?.errorMessage ===
|
||||
'Code is expired' ? (
|
||||
'Не удалось активировать код доступа. Попробуйте отсканировать код ещё раз'
|
||||
) : (
|
||||
<pre>{JSON.stringify(acc.error, null, 4)}</pre>
|
||||
)}
|
||||
</Alert>
|
||||
</Box>
|
||||
)}
|
||||
|
||||
<Box mb={6}>
|
||||
<Text fontSize={18} fontWeight={600} as="h1" mt="4" mb="3">
|
||||
Тема занятия: {ls.data?.body?.name}
|
||||
</Text>
|
||||
|
||||
{acc.error && (
|
||||
<div style={{ padding: 12, marginTop: 24, fontSize: 36 }}>
|
||||
<ErrorSpan>
|
||||
{(acc as any).error?.data?.body?.errorMessage ===
|
||||
'Code is expired' ? (
|
||||
'Не удалось активировать код доступа. Попробуйте отсканировать код ещё раз'
|
||||
) : (
|
||||
<pre>{JSON.stringify(acc.error, null, 4)}</pre>
|
||||
)}
|
||||
</ErrorSpan>
|
||||
</div>
|
||||
)}
|
||||
<h1>Тема занятия - {ls.data?.body?.name}</h1>
|
||||
<span>{dayjs(ls.data?.body?.date).format('DD MMMM YYYYг.')}</span>
|
||||
</Box>
|
||||
|
||||
<ul style={{ paddingLeft: 0 }}>
|
||||
{ls.data?.body?.students?.map((student, index) => (
|
||||
<LessonItem key={index}>
|
||||
<Lessonname>
|
||||
{student.name || student.preferred_username}
|
||||
</Lessonname>
|
||||
</LessonItem>
|
||||
))}
|
||||
</ul>
|
||||
</StartWrapper>
|
||||
</MainWrapper>
|
||||
<Box
|
||||
as="ul"
|
||||
display="flex"
|
||||
flexWrap="wrap"
|
||||
justifyContent="center"
|
||||
gap={3}
|
||||
>
|
||||
{ls.data?.body?.students?.map((student) => (
|
||||
<UserCard
|
||||
width="40%"
|
||||
wrapperAS="li"
|
||||
key={student.sub}
|
||||
student={student}
|
||||
present
|
||||
/>
|
||||
))}
|
||||
</Box>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user