Non-Functional Calender Nav and Days of The Week #8

Merged
LucidKobold merged 2 commits from calender-nav into main 2021-11-25 19:40:04 -05:00
2 changed files with 117 additions and 24 deletions
Showing only changes of commit 3f244d0f96 - Show all commits

View File

@@ -1,6 +1,7 @@
import React from "react"; import React from "react";
import { Box, SimpleGrid } from "@chakra-ui/react"; import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react";
import { endOfMonth, getDate } from "date-fns"; import { endOfMonth, getDate } from "date-fns";
import CalenderNav from "./nav";
const Calender = (): JSX.Element => { const Calender = (): JSX.Element => {
const today = new Date(); const today = new Date();
@@ -10,31 +11,95 @@ const Calender = (): JSX.Element => {
// console.info(`This month has ${lastDay} days.`); // console.info(`This month has ${lastDay} days.`);
const daysArr = []; const daysOfMonth = [];
for (let i = daysArr.length; i < lastDay; i++) { for (let i = daysOfMonth.length; i < lastDay; i++) {
daysArr.push(daysArr.length + 1); daysOfMonth.push(daysOfMonth.length + 1);
} }
const daysOfWeek = {
Sunday: [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
Monday: [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
],
};
const userSettings = {
theme: "default",
startOfWeek: "Sunday",
};
return ( return (
<SimpleGrid <VStack h="100vh" w="100%">
px={6} <CalenderNav />
spacing={2} <HStack
// bg="brand.main" px={6}
w="100%" spacing={2}
h="100vh" // bg="brand.main"
columns={7} w="100%"
> h="auto"
{daysArr.map((day) => { alignContent="center"
return ( alignItems="center"
<Box >
bg="transparent" {daysOfWeek[userSettings.startOfWeek].map((weekDay) => {
border="2px solid #0068ff" return (
w="100%" <Box
h="100%" d="flex"
key={day} alignContent="center"
>{`Day ${day}`}</Box> alignItems="center"
); bg="transparent"
})} border="2px solid #0068ff"
</SimpleGrid> w="100%"
h={10}
key={weekDay}
>
<Text w="100%" h="auto">
{weekDay}
</Text>
</Box>
);
})}
</HStack>
<SimpleGrid
px={6}
spacing={2}
// bg="brand.main"
w="100%"
h="100%"
columns={7}
// alignContent="center"
alignItems="center"
>
{daysOfMonth.map((monthDay) => {
return (
<Box
bg="transparent"
border="2px solid #0068ff"
w="100%"
h="100%"
key={monthDay}
>
<Text w="100%" h="100%">
{`Day ${monthDay}`}
</Text>
</Box>
);
})}
</SimpleGrid>
</VStack>
); );
}; };

View File

@@ -0,0 +1,28 @@
import React from "react";
import { Heading, HStack, IconButton } from "@chakra-ui/react";
import { Icon } from "@iconify/react";
import { format } from "date-fns/esm";
const CalenderNav = (): JSX.Element => {
const today = new Date();
const currentMonth = format(today, "LLLL uuuu");
return (
<HStack spacing={10} as="nav" w="auto" h="10vh" textAlign="center">
<IconButton
aria-label="Previous Month"
icon={<Icon icon="akar-icons:chevron-left" />}
/>
<Heading w="100%" h="auto">
{currentMonth}
</Heading>
<IconButton
aria-label="Next Month"
icon={<Icon icon="akar-icons:chevron-right" />}
/>
</HStack>
);
};
export default CalenderNav;