Apply Prettier styles

This commit is contained in:
TUTOR03 2020-12-13 14:15:30 +00:00 committed by GitHub Actions
parent adaf786ddd
commit 7ad62907ec
3 changed files with 74 additions and 39 deletions

View File

@ -11,55 +11,83 @@ import {
CardT, CardT,
SubjectT, SubjectT,
} from "./types/timetable"; } from "./types/timetable";
import { initialEventLessonsGenrator } from './utils/timetable' import { initialEventLessonsGenrator } from "./utils/timetable";
export const useTimetable: UseTimetableHookFT = () => { export const useTimetable: UseTimetableHookFT = () => {
const [cardState, setCardState] = useState<CardT[]>([]) const [cardState, setCardState] = useState<CardT[]>([]);
const [dayState, setDayState] = useState<DayT[]>([]) const [dayState, setDayState] = useState<DayT[]>([]);
const [subjectState, setSubjectState] = useState<SubjectT[]>([]) const [subjectState, setSubjectState] = useState<SubjectT[]>([]);
// const [startDateState, setStartDateState] = useState<number>(0) // const [startDateState, setStartDateState] = useState<number>(0)
const createSubject: CreateSubjectFT = (title, teachers) => { const createSubject: CreateSubjectFT = (title, teachers) => {
setSubjectState((prev) => ([...prev, { title, teachers }])) setSubjectState(prev => [...prev, { title, teachers }]);
}; };
const createCard: CreateCardFT = (subject, teacher, room) => { const createCard: CreateCardFT = (subject, teacher, room) => {
setCardState((prev) => ([...prev, { subject, teacher, room }])) setCardState(prev => [...prev, { subject, teacher, room }]);
}; };
const createDay: CreateDayFT = (date) => { const createDay: CreateDayFT = date => {
setDayState((prev) => [...prev, { date, events: [] }]) setDayState(prev => [...prev, { date, events: [] }]);
} };
const addEvent: AddEventFT = (dayId) => { const addEvent: AddEventFT = dayId => {
setDayState((days) => days.map((day, i) => (i == dayId) ? { ...day, events: [...day.events, { lessons: initialEventLessonsGenrator() }] } : day)) setDayState(days =>
} days.map((day, i) =>
i == dayId
const addLesson: AddLessonFT = (dayId, eventId, groupId, isPair, lessonId, lessonNumber) => { ? {
setDayState((days) => days.map( ...day,
(day, dayIndex) => ( events: [
(dayIndex == dayId) ? { ...day.events,
...day, { lessons: initialEventLessonsGenrator() },
events: day.events.map( ],
(event, eventIndex) => ( }
(eventIndex == eventId) ? { : day
lessons: event.lessons.map(
(lesson, lessonIndex) => (
(lessonIndex == groupId) ? (
(isPair) ? [lessonId, lessonId] : lesson.map((lessonElement, lessonElementIndex) => (
(lessonElementIndex == lessonNumber) ? lessonId : lessonElement
))
) : lesson
)
)
} : event
)
)
} : day
) )
)) );
} };
const addLesson: AddLessonFT = (
dayId,
eventId,
groupId,
isPair,
lessonId,
lessonNumber
) => {
setDayState(days =>
days.map((day, dayIndex) =>
dayIndex == dayId
? {
...day,
events: day.events.map((event, eventIndex) =>
eventIndex == eventId
? {
lessons: event.lessons.map((lesson, lessonIndex) =>
lessonIndex == groupId
? isPair
? [lessonId, lessonId]
: lesson.map((lessonElement, lessonElementIndex) =>
lessonElementIndex == lessonNumber
? lessonId
: lessonElement
)
: lesson
),
}
: event
),
}
: day
)
);
};
return { state: { cards: cardState, subjects: subjectState, days: dayState }, createCard, createSubject, createDay, addLesson }; return {
state: { cards: cardState, subjects: subjectState, days: dayState },
createCard,
createSubject,
createDay,
addLesson,
};
}; };

View File

@ -36,7 +36,14 @@ export type CreateDayFT = (date: number) => void;
export type AddEventFT = (dayId: number) => void; export type AddEventFT = (dayId: number) => void;
export type AddLessonFT = (dayId: number, eventId: number, groupId:number, isPair: boolean, lessonId: number, lessonNumber?: number) => void; export type AddLessonFT = (
dayId: number,
eventId: number,
groupId: number,
isPair: boolean,
lessonId: number,
lessonNumber?: number
) => void;
export type UseTimetableHookFT = () => { export type UseTimetableHookFT = () => {
createSubject: CreateSubjectFT; createSubject: CreateSubjectFT;

View File

@ -1,2 +1,2 @@
export const initialEventLessonsGenrator = () => export const initialEventLessonsGenrator = () =>
Array(6).map<number[]>(() => [0, 0]) Array(6).map<number[]>(() => [0, 0]);