Apply Prettier styles
This commit is contained in:
parent
adaf786ddd
commit
7ad62907ec
100
src/hooks.ts
100
src/hooks.ts
@ -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, dayIndex) => (
|
|
||||||
(dayIndex == dayId) ? {
|
|
||||||
...day,
|
...day,
|
||||||
events: day.events.map(
|
events: [
|
||||||
(event, eventIndex) => (
|
...day.events,
|
||||||
(eventIndex == eventId) ? {
|
{ lessons: initialEventLessonsGenrator() },
|
||||||
lessons: event.lessons.map(
|
],
|
||||||
(lesson, lessonIndex) => (
|
|
||||||
(lessonIndex == groupId) ? (
|
|
||||||
(isPair) ? [lessonId, lessonId] : lesson.map((lessonElement, lessonElementIndex) => (
|
|
||||||
(lessonElementIndex == lessonNumber) ? lessonId : lessonElement
|
|
||||||
))
|
|
||||||
) : lesson
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} : event
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} : day
|
|
||||||
)
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
: 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 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;
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
export const initialEventLessonsGenrator = () =>
|
export const initialEventLessonsGenrator = () =>
|
||||||
Array(6).map<number[]>(() => [0, 0])
|
Array(6).map<number[]>(() => [0, 0]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user