Apply Prettier styles
This commit is contained in:
parent
adaf786ddd
commit
7ad62907ec
102
src/hooks.ts
102
src/hooks.ts
@ -11,55 +11,83 @@ import {
|
||||
CardT,
|
||||
SubjectT,
|
||||
} from "./types/timetable";
|
||||
import { initialEventLessonsGenrator } from './utils/timetable'
|
||||
import { initialEventLessonsGenrator } from "./utils/timetable";
|
||||
|
||||
export const useTimetable: UseTimetableHookFT = () => {
|
||||
const [cardState, setCardState] = useState<CardT[]>([])
|
||||
const [dayState, setDayState] = useState<DayT[]>([])
|
||||
const [subjectState, setSubjectState] = useState<SubjectT[]>([])
|
||||
const [cardState, setCardState] = useState<CardT[]>([]);
|
||||
const [dayState, setDayState] = useState<DayT[]>([]);
|
||||
const [subjectState, setSubjectState] = useState<SubjectT[]>([]);
|
||||
// const [startDateState, setStartDateState] = useState<number>(0)
|
||||
|
||||
const createSubject: CreateSubjectFT = (title, teachers) => {
|
||||
setSubjectState((prev) => ([...prev, { title, teachers }]))
|
||||
setSubjectState(prev => [...prev, { title, teachers }]);
|
||||
};
|
||||
|
||||
const createCard: CreateCardFT = (subject, teacher, room) => {
|
||||
setCardState((prev) => ([...prev, { subject, teacher, room }]))
|
||||
setCardState(prev => [...prev, { subject, teacher, room }]);
|
||||
};
|
||||
|
||||
const createDay: CreateDayFT = (date) => {
|
||||
setDayState((prev) => [...prev, { date, events: [] }])
|
||||
}
|
||||
const createDay: CreateDayFT = date => {
|
||||
setDayState(prev => [...prev, { date, events: [] }]);
|
||||
};
|
||||
|
||||
const addEvent: AddEventFT = (dayId) => {
|
||||
setDayState((days) => days.map((day, i) => (i == dayId) ? { ...day, events: [...day.events, { lessons: initialEventLessonsGenrator() }] } : 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
|
||||
const addEvent: AddEventFT = dayId => {
|
||||
setDayState(days =>
|
||||
days.map((day, i) =>
|
||||
i == dayId
|
||||
? {
|
||||
...day,
|
||||
events: [
|
||||
...day.events,
|
||||
{ lessons: initialEventLessonsGenrator() },
|
||||
],
|
||||
}
|
||||
: 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,
|
||||
};
|
||||
};
|
||||
|
@ -36,7 +36,14 @@ export type CreateDayFT = (date: 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 = () => {
|
||||
createSubject: CreateSubjectFT;
|
||||
|
@ -1,2 +1,2 @@
|
||||
export const initialEventLessonsGenrator = () =>
|
||||
Array(6).map<number[]>(() => [0, 0])
|
||||
Array(6).map<number[]>(() => [0, 0]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user