Обновлены компоненты для учета только прошедших лекций в статистике посещаемости. Добавлено мобильное отображение в компонентах LessonItems и Item, улучшена логика фильтрации лекций. Реализовано отображение QR-кода с учетом темы оформления.
This commit is contained in:
@@ -3,6 +3,10 @@ import dayjs from 'dayjs'
|
||||
import {
|
||||
Tr,
|
||||
Td,
|
||||
Box,
|
||||
Flex,
|
||||
Text,
|
||||
useBreakpointValue,
|
||||
} from '@chakra-ui/react'
|
||||
|
||||
import { Lesson } from '../../../__data__/model'
|
||||
@@ -25,24 +29,70 @@ export const LessonItems: React.FC<LessonItemProps> = ({
|
||||
courseId,
|
||||
setlessonToDelete,
|
||||
setEditLesson,
|
||||
}) => (
|
||||
<>
|
||||
{date && (
|
||||
<Tr>
|
||||
<Td colSpan={isTeacher ? 5 : 3}>
|
||||
{dayjs(date).format('DD MMMM YYYY')}
|
||||
</Td>
|
||||
</Tr>
|
||||
)}
|
||||
{lessons.map((lesson) => (
|
||||
<Item
|
||||
key={lesson.id}
|
||||
{...lesson}
|
||||
setlessonToDelete={() => setlessonToDelete(lesson)}
|
||||
setEditLesson={setEditLesson ? () => setEditLesson(lesson) : undefined}
|
||||
courseId={courseId}
|
||||
isTeacher={isTeacher}
|
||||
/>
|
||||
))}
|
||||
</>
|
||||
)
|
||||
}) => {
|
||||
// Использование useBreakpointValue для определения мобильного отображения
|
||||
const isMobile = useBreakpointValue({ base: true, md: false })
|
||||
|
||||
// Мобильное отображение
|
||||
if (isMobile) {
|
||||
return (
|
||||
<>
|
||||
{date && (
|
||||
<Box
|
||||
p={3}
|
||||
mb={2}
|
||||
bg="gray.100"
|
||||
borderRadius="md"
|
||||
_dark={{ bg: "gray.700" }}
|
||||
>
|
||||
<Text fontWeight="bold">{dayjs(date).format('DD MMMM YYYY')}</Text>
|
||||
</Box>
|
||||
)}
|
||||
{lessons.map((lesson) => (
|
||||
<Box
|
||||
key={lesson.id}
|
||||
p={3}
|
||||
mb={2}
|
||||
borderRadius="md"
|
||||
boxShadow="sm"
|
||||
borderLeft="4px solid"
|
||||
borderLeftColor="cyan.500"
|
||||
>
|
||||
<Item
|
||||
{...lesson}
|
||||
setlessonToDelete={() => setlessonToDelete(lesson)}
|
||||
setEditLesson={setEditLesson ? () => setEditLesson(lesson) : undefined}
|
||||
courseId={courseId}
|
||||
isTeacher={isTeacher}
|
||||
isMobile={true}
|
||||
/>
|
||||
</Box>
|
||||
))}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
// Стандартное отображение для планшетов и больших экранов
|
||||
return (
|
||||
<>
|
||||
{date && (
|
||||
<Tr>
|
||||
<Td colSpan={isTeacher ? 5 : 3}>
|
||||
{dayjs(date).format('DD MMMM YYYY')}
|
||||
</Td>
|
||||
</Tr>
|
||||
)}
|
||||
{lessons.map((lesson) => (
|
||||
<Item
|
||||
key={lesson.id}
|
||||
{...lesson}
|
||||
setlessonToDelete={() => setlessonToDelete(lesson)}
|
||||
setEditLesson={setEditLesson ? () => setEditLesson(lesson) : undefined}
|
||||
courseId={courseId}
|
||||
isTeacher={isTeacher}
|
||||
isMobile={false}
|
||||
/>
|
||||
))}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user