Created types file for calender context.
This commit is contained in:
@@ -11,80 +11,6 @@ import {
|
|||||||
isBefore,
|
isBefore,
|
||||||
compareAsc
|
compareAsc
|
||||||
} from "date-fns";
|
} from "date-fns";
|
||||||
// TODO: import types
|
|
||||||
|
|
||||||
type Days =
|
|
||||||
| "Sunday"
|
|
||||||
| "Monday"
|
|
||||||
| "Tuesday"
|
|
||||||
| "Wednesday"
|
|
||||||
| "Thursday"
|
|
||||||
| "Friday"
|
|
||||||
| "Saturday";
|
|
||||||
|
|
||||||
type DaysOfWeek = Days[];
|
|
||||||
|
|
||||||
interface WeekDays {
|
|
||||||
sunday: DaysOfWeek;
|
|
||||||
monday: DaysOfWeek;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Sticker {
|
|
||||||
date: Date;
|
|
||||||
sticker: -2 | -1 | 0 | 1 | 2 | null;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MonthSticker {
|
|
||||||
date: Date;
|
|
||||||
month: Sticker[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MonthDay extends Sticker {
|
|
||||||
isOverflow: boolean;
|
|
||||||
overflowDirection: "prev" | "next" | null;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Month {
|
|
||||||
week1: MonthDay[];
|
|
||||||
week2: MonthDay[];
|
|
||||||
week3: MonthDay[];
|
|
||||||
week4: MonthDay[];
|
|
||||||
week5: MonthDay[];
|
|
||||||
week6: MonthDay[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MonthInfo {
|
|
||||||
date: Date;
|
|
||||||
title: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MonthLayout {
|
|
||||||
sunday: {
|
|
||||||
weekdays: DaysOfWeek;
|
|
||||||
month: Month;
|
|
||||||
};
|
|
||||||
monday: {
|
|
||||||
weekdays: DaysOfWeek;
|
|
||||||
month: Month;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MonthContext extends MonthInfo {
|
|
||||||
layout: MonthLayout;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface UpdateCalendarProps {
|
|
||||||
year: number;
|
|
||||||
month: number;
|
|
||||||
day: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface CalenderContextState {
|
|
||||||
selectedDate: Date;
|
|
||||||
title: string;
|
|
||||||
layout: MonthLayout;
|
|
||||||
updateDate: (input: UpdateCalendarProps) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
const CalenderContext = createContext({} as CalenderContextState);
|
const CalenderContext = createContext({} as CalenderContextState);
|
||||||
|
|
||||||
|
|||||||
@@ -6,11 +6,6 @@ import { getDaysInMonth, getYear, getMonth, isBefore } from "date-fns";
|
|||||||
* the day before the current date, leaving the rest of the month empty.
|
* the day before the current date, leaving the rest of the month empty.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
interface Sticker {
|
|
||||||
date: Date;
|
|
||||||
sticker: -2 | -1 | 0 | 1 | 2 | null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const generateSticker = (): -2 | -1 | 0 | 1 | 2 => {
|
const generateSticker = (): -2 | -1 | 0 | 1 | 2 => {
|
||||||
const stickerPossibility = [-2, -1, 0, 1, 2];
|
const stickerPossibility = [-2, -1, 0, 1, 2];
|
||||||
const sticker = Math.floor(Math.random() * stickerPossibility.length);
|
const sticker = Math.floor(Math.random() * stickerPossibility.length);
|
||||||
|
|||||||
72
types/CalenderContext.d.ts
vendored
Normal file
72
types/CalenderContext.d.ts
vendored
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
type Days =
|
||||||
|
| "Sunday"
|
||||||
|
| "Monday"
|
||||||
|
| "Tuesday"
|
||||||
|
| "Wednesday"
|
||||||
|
| "Thursday"
|
||||||
|
| "Friday"
|
||||||
|
| "Saturday";
|
||||||
|
|
||||||
|
type DaysOfWeek = Days[];
|
||||||
|
|
||||||
|
interface WeekDays {
|
||||||
|
sunday: DaysOfWeek;
|
||||||
|
monday: DaysOfWeek;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Sticker {
|
||||||
|
date: Date;
|
||||||
|
sticker: -2 | -1 | 0 | 1 | 2 | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MonthSticker {
|
||||||
|
date: Date;
|
||||||
|
month: Sticker[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MonthDay extends Sticker {
|
||||||
|
isOverflow: boolean;
|
||||||
|
overflowDirection: "prev" | "next" | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Month {
|
||||||
|
week1: MonthDay[];
|
||||||
|
week2: MonthDay[];
|
||||||
|
week3: MonthDay[];
|
||||||
|
week4: MonthDay[];
|
||||||
|
week5: MonthDay[];
|
||||||
|
week6: MonthDay[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MonthInfo {
|
||||||
|
date: Date;
|
||||||
|
title: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MonthLayout {
|
||||||
|
sunday: {
|
||||||
|
weekdays: DaysOfWeek;
|
||||||
|
month: Month;
|
||||||
|
};
|
||||||
|
monday: {
|
||||||
|
weekdays: DaysOfWeek;
|
||||||
|
month: Month;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MonthContext extends MonthInfo {
|
||||||
|
layout: MonthLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface UpdateCalendarProps {
|
||||||
|
year: number;
|
||||||
|
month: number;
|
||||||
|
day: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface CalenderContextState {
|
||||||
|
selectedDate: Date;
|
||||||
|
title: string;
|
||||||
|
layout: MonthLayout;
|
||||||
|
updateDate: (input: UpdateCalendarProps) => void;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user