Added last update, cache strategy, telegram fail notifications, teachers photos
This commit is contained in:
@@ -18,17 +18,18 @@ export function Day({ day }: {
|
||||
.some(lesson => 'subject' in lesson && lesson.subject.length > 20)
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-5">
|
||||
<h1 className="scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl">
|
||||
{dayOfWeek} <span className='text-muted ml-3'>{Intl.DateTimeFormat('ru-RU', {
|
||||
<div className="flex flex-col gap-3 md:gap-5">
|
||||
<h1 className="scroll-m-20 text-2xl md:text-4xl font-extrabold tracking-tight lg:text-5xl">
|
||||
{dayOfWeek} <span className='text-border ml-3'>{Intl.DateTimeFormat('ru-RU', {
|
||||
day: 'numeric',
|
||||
month: 'long',
|
||||
// year: 'numeric'
|
||||
}).format(day.date)}</span>
|
||||
</h1>
|
||||
<div className='overflow-hidden'>
|
||||
<div className='overflow-auto'>
|
||||
<div className="flex flex-row gap-4 w-max">
|
||||
<div>
|
||||
<div className='overflow-auto md:snap-x md:snap-proximity md:-translate-x-16 md:w-[calc(100%+8rem)] scrollbar-hide'>
|
||||
<div className="flex flex-col md:flex-row gap-4 w-full md:w-max">
|
||||
<div className='snap-start hidden md:block' style={{ flex: '0 0 3rem' }} />
|
||||
{day.lessons.map((lesson, i) => (
|
||||
<Lesson
|
||||
width={longNames ? 450 : 350}
|
||||
@@ -36,6 +37,7 @@ export function Day({ day }: {
|
||||
key={i}
|
||||
/>
|
||||
))}
|
||||
<div className='snap-start hidden md:block' style={{ flex: `0 0 calc(100vw - 4rem - ${longNames ? 450 : 350}px - 1rem)` }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
import type { Day as DayType } from '@/shared/model/day'
|
||||
import { Day } from '@/widgets/schedule/day'
|
||||
import { useRouter } from 'next/router'
|
||||
|
||||
export function Schedule({ days }: {
|
||||
days: DayType[]
|
||||
}) {
|
||||
const group = useRouter().query['group']
|
||||
|
||||
return (
|
||||
<div className="flex flex-col p-16 gap-14">
|
||||
<div className="flex flex-col p-8 md:p-16 gap-12 md:gap-14">
|
||||
{days.map((day, i) => (
|
||||
<Day day={day} key={i} />
|
||||
<Day day={day} key={`${group}_day${i}`} />
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -60,8 +60,8 @@ export function Lesson({ lesson, width = 350 }: {
|
||||
}
|
||||
|
||||
return (
|
||||
<Card className={`w-[${width}px] min-w-[${width}px] max-w-[${width}px] flex flex-col relative overflow-hidden`} style={{ minWidth: width, maxWidth: width }}>
|
||||
{lesson.isChange && <div className='absolute top-0 left-0 w-full h-full bg-gradient-to-br from-[#ffc60026] to-[#95620026]'></div>}
|
||||
<Card className={`w-full ${width === 450 ? `md:w-[450px] md:min-w-[450px] md:max-w-[450px]` : `md:w-[350px] md:min-w-[350px] md:max-w-[350px]`} flex flex-col relative overflow-hidden snap-start scroll-ml-16 shrink-0`}>
|
||||
{lesson.isChange && <div className='absolute top-0 left-0 w-full h-full bg-gradient-to-br from-[#ffc60026] to-[#95620026] pointer-events-none'></div>}
|
||||
<CardHeader>
|
||||
<div className='flex gap-4'>
|
||||
{hasTeacher ? (
|
||||
@@ -97,7 +97,7 @@ export function Lesson({ lesson, width = 350 }: {
|
||||
{lesson.topic ? (
|
||||
<span className='leading-relaxed hyphens-auto'>{lesson.topic}</span>
|
||||
) : (
|
||||
!isFallbackDiscipline && <span className='text-muted font-semibold'>Нет описания пары</span>
|
||||
!isFallbackDiscipline && <span className='text-border font-semibold'>Нет описания пары</span>
|
||||
)}
|
||||
</CardContent>
|
||||
{(Boolean(lesson.resources.length) || hasPlace) && (
|
||||
|
||||
Reference in New Issue
Block a user