Created basic state types
This commit is contained in:
parent
b5aa7a4ed6
commit
d008eedce0
38
dataExample.json
Normal file
38
dataExample.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"days": [
|
||||||
|
{
|
||||||
|
"events": [
|
||||||
|
{
|
||||||
|
"time": 0,
|
||||||
|
"lessons": [0, 1, 2, 3, 4, 5]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"time": 1,
|
||||||
|
"lessons": [0, 1, 2, 3, 4, 5]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"date": 5467546
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"events": [
|
||||||
|
{
|
||||||
|
"lessons": [0, 1, 2, 3, 4, 5]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"date": 5467546
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"subject": 3,
|
||||||
|
"room": 505,
|
||||||
|
"teacher": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subjects": [
|
||||||
|
{
|
||||||
|
"title": "Math",
|
||||||
|
"teachers": ["Popov", "somebody"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
25
src/hooks.ts
Normal file
25
src/hooks.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { useState } from "react";
|
||||||
|
import {
|
||||||
|
TimetableT,
|
||||||
|
UseTimetableHookFT,
|
||||||
|
CreateCardFT,
|
||||||
|
CreateSubjectFT,
|
||||||
|
} from "./types/timetable";
|
||||||
|
|
||||||
|
export const useTimetable: UseTimetableHookFT = () => {
|
||||||
|
const [state, setState] = useState<TimetableT>({
|
||||||
|
cards: [],
|
||||||
|
days: [],
|
||||||
|
subjects: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
const createSubject: CreateSubjectFT = () => {
|
||||||
|
console.log();
|
||||||
|
};
|
||||||
|
|
||||||
|
const createCard: CreateCardFT = () => {
|
||||||
|
console.log();
|
||||||
|
};
|
||||||
|
|
||||||
|
return { state, createCard, createSubject };
|
||||||
|
};
|
39
src/types/timetable.ts
Normal file
39
src/types/timetable.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
export type TimetableT = {
|
||||||
|
days: DayT[];
|
||||||
|
cards: CardT[];
|
||||||
|
subjects: SubjectT[];
|
||||||
|
};
|
||||||
|
|
||||||
|
type DayT = {
|
||||||
|
events: EventT[];
|
||||||
|
date: number; // epoch time
|
||||||
|
};
|
||||||
|
|
||||||
|
type EventT = {
|
||||||
|
lessons: number[]; // IDs
|
||||||
|
};
|
||||||
|
|
||||||
|
type CardT = {
|
||||||
|
subject: number; // ID
|
||||||
|
room: number; // Number
|
||||||
|
teacher: number; // ID in subject
|
||||||
|
};
|
||||||
|
|
||||||
|
type SubjectT = {
|
||||||
|
title: string;
|
||||||
|
teachers: string[]; // teachers allowed for this subject
|
||||||
|
};
|
||||||
|
|
||||||
|
export type CreateSubjectFT = (title: string, teachers: string[]) => void;
|
||||||
|
|
||||||
|
export type CreateCardFT = (
|
||||||
|
subjectID: number,
|
||||||
|
teacherID: number,
|
||||||
|
room: number
|
||||||
|
) => void;
|
||||||
|
|
||||||
|
export type UseTimetableHookFT = () => {
|
||||||
|
createSubject: CreateSubjectFT;
|
||||||
|
createCard: CreateCardFT;
|
||||||
|
state: TimetableT;
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user