Schedule component format
This commit is contained in:
1 parent
04c269b64a
commit
faa17a3e79
1 file changed
+87
-87
+87
-87
@@ -1,7 +1,7 @@
|
||||
import React from 'react'
|
||||
|
||||
const {getDates} = require('../utils/date')
|
||||
const {shortName} = require('../models/collective')
|
||||
const { getDates } = require('../utils/date')
|
||||
const { shortName } = require('../models/collective')
|
||||
|
||||
const now = new Date()
|
||||
const dates = getDates(now)
|
||||
@@ -11,111 +11,111 @@ const weekDay = weekDayIndex => dates[weekDayIndex]
|
||||
const short = shortName
|
||||
|
||||
const todayClass = i => isToday(i)
|
||||
? 'current'
|
||||
: ''
|
||||
? 'current'
|
||||
: ''
|
||||
|
||||
const HeadDay = ({i, children}) => (
|
||||
<div className={`schedule-table__head-record ${todayClass(i)}`}>
|
||||
<p className="day">{children}</p>
|
||||
<p className="date">{weekDay(i)}</p>
|
||||
</div>
|
||||
const HeadDay = ({ i, children }) => (
|
||||
<div className={`schedule-table__head-record ${todayClass(i)}`}>
|
||||
<p className="day">{children}</p>
|
||||
<p className="date">{weekDay(i)}</p>
|
||||
</div>
|
||||
)
|
||||
|
||||
const days = [
|
||||
'Понедельник',
|
||||
'Вторник',
|
||||
'Среда',
|
||||
'Четверг',
|
||||
'Пятница',
|
||||
'Суббота',
|
||||
'Понедельник',
|
||||
'Вторник',
|
||||
'Среда',
|
||||
'Четверг',
|
||||
'Пятница',
|
||||
'Суббота',
|
||||
]
|
||||
|
||||
export const Schedule = ({groups}) => (
|
||||
<div className="schedule-table">
|
||||
<div className="schedule-table__body">
|
||||
<div className="schedule-table__body-row">
|
||||
<div className="schedule-table__body-group">Гр.</div>
|
||||
export const Schedule = ({ groups }) => (
|
||||
<div className="schedule-table">
|
||||
<div className="schedule-table__body">
|
||||
<div className="schedule-table__body-row">
|
||||
<div className="schedule-table__body-group">Гр.</div>
|
||||
|
||||
{days.map((day, index) => (
|
||||
<HeadDay i={index}>{day}</HeadDay>
|
||||
))}
|
||||
</div>
|
||||
{days.map((day, index) => (
|
||||
<HeadDay i={index}>{day}</HeadDay>
|
||||
))}
|
||||
</div>
|
||||
|
||||
{groups.map((group, index) => (
|
||||
<GroupRow key={index} {...group}/>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
{groups.map((group, index) => (
|
||||
<GroupRow key={index} {...group} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
const GroupRow = ({name, time, week}) => (
|
||||
<div className="schedule-table__body-row">
|
||||
<div className="schedule-table__body-group">
|
||||
<p className="name">{name}</p>
|
||||
<p className="time">{time}</p>
|
||||
</div>
|
||||
const GroupRow = ({ name, time, week }) => (
|
||||
<div className="schedule-table__body-row">
|
||||
<div className="schedule-table__body-group">
|
||||
<p className="name">{name}</p>
|
||||
<p className="time">{time}</p>
|
||||
</div>
|
||||
|
||||
{week.map((day, index) => (
|
||||
<Group key={index} day={day} dayIndex={index}/>
|
||||
))}
|
||||
</div>
|
||||
{week.map((day, index) => (
|
||||
<Group key={index} day={day} dayIndex={index} />
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
|
||||
const Group = ({day, dayIndex}) => (
|
||||
<div className={`schedule-table__record ${todayClass(dayIndex)}`}>
|
||||
{day.map((lesson, index) => (
|
||||
<Cell key={index} {...lesson}/>
|
||||
))}
|
||||
</div>
|
||||
const Group = ({ day, dayIndex }) => (
|
||||
<div className={`schedule-table__record ${todayClass(dayIndex)}`}>
|
||||
{day.map((lesson, index) => (
|
||||
<Cell key={index} {...lesson} />
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
|
||||
const Cell = ({course, teacher, time}) => (
|
||||
<div className="schedule-table__course">
|
||||
<Lesson {...course}/>
|
||||
<Teacher {...teacher}/>
|
||||
const Cell = ({ course, teacher, time }) => (
|
||||
<div className="schedule-table__course">
|
||||
<Lesson {...course} />
|
||||
<Teacher {...teacher} />
|
||||
|
||||
{time
|
||||
.map(range => ({range}))
|
||||
.map((range, index) => (
|
||||
<TimeRange key={index} {...range}/>
|
||||
))}
|
||||
</div>
|
||||
{time
|
||||
.map(range => ({ range }))
|
||||
.map((range, index) => (
|
||||
<TimeRange key={index} {...range} />
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
|
||||
const Lesson = ({title, url}) => (
|
||||
<p className="lesson">
|
||||
{url
|
||||
? (
|
||||
<a href={url}>
|
||||
{title}
|
||||
</a>
|
||||
)
|
||||
: (
|
||||
<span>
|
||||
{title}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
</p>
|
||||
const Lesson = ({ title, url }) => (
|
||||
<p className="lesson">
|
||||
{url
|
||||
? (
|
||||
<a href={url}>
|
||||
{title}
|
||||
</a>
|
||||
)
|
||||
: (
|
||||
<span>
|
||||
{title}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
</p>
|
||||
)
|
||||
|
||||
const Teacher = ({name, url}) => (
|
||||
<p className="teacher">
|
||||
{url
|
||||
? (
|
||||
<a href={url}>
|
||||
{short(name)}
|
||||
</a>
|
||||
)
|
||||
: (
|
||||
<span>
|
||||
{short(name)}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
</p>
|
||||
const Teacher = ({ name, url }) => (
|
||||
<p className="teacher">
|
||||
{url
|
||||
? (
|
||||
<a href={url}>
|
||||
{short(name)}
|
||||
</a>
|
||||
)
|
||||
: (
|
||||
<span>
|
||||
{short(name)}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
</p>
|
||||
)
|
||||
|
||||
const TimeRange = ({range}) => (
|
||||
<p className="time">{(range || []).join(' — ')}</p>
|
||||
const TimeRange = ({ range }) => (
|
||||
<p className="time">{(range || []).join(' — ')}</p>
|
||||
)
|
||||
Reference in new issue
Block a user