diff --git a/src/animations/show.tsx b/src/animations/show.tsx
new file mode 100644
index 0000000..0d8a350
--- /dev/null
+++ b/src/animations/show.tsx
@@ -0,0 +1,24 @@
+import React, { FC } from "react";
+import { motion } from "framer-motion";
+
+type ShowProps = {
+ children: React.ReactNode;
+ delay?: number;
+};
+
+const Show = ({ children, delay }: ShowProps) => {
+ return (
+
+ {children}
+
+ );
+};
+
+export default Show;
diff --git a/src/layout/sidebar/categories.tsx b/src/layout/header/categories.tsx
similarity index 64%
rename from src/layout/sidebar/categories.tsx
rename to src/layout/header/categories.tsx
index fcb7d2e..af69f48 100644
--- a/src/layout/sidebar/categories.tsx
+++ b/src/layout/header/categories.tsx
@@ -2,7 +2,7 @@ import React from "react";
import useSWR from "swr";
import { getCategorySvgs } from "@/services";
import CustomLink from "@/common/link";
-import { Text } from "@chakra-ui/react";
+import { Box, Text } from "@chakra-ui/react";
const Categories = () => {
const { data, error } = useSWR(getCategorySvgs);
@@ -11,13 +11,13 @@ const Categories = () => {
if (!data) return
loading...
;
return (
-
+ <>
{data.map((category: string) => (
-
- {category}
-
+
+ {category}
+
))}
-
+ >
);
};
diff --git a/src/layout/header/index.tsx b/src/layout/header/index.tsx
new file mode 100644
index 0000000..5473a96
--- /dev/null
+++ b/src/layout/header/index.tsx
@@ -0,0 +1,73 @@
+import React from "react";
+import {
+ Box,
+ Flex,
+ useColorModeValue,
+ HStack,
+ Button,
+ Container,
+ Heading,
+} from "@chakra-ui/react";
+import { Sticker } from "phosphor-react";
+import Theme from "./theme";
+import Tap from "@/animations/tap";
+import Mobile from "./mobile";
+import { Links } from "./links";
+import CustomLink from "@/common/link";
+import Categories from "./categories";
+
+const Header = () => {
+ const bg = useColorModeValue("bg.light", "bg.dark");
+ return (
+ <>
+
+
+
+
+
+
+
+ svgl
+
+
+
+
+
+ {Links.map((link) => (
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default Header;
diff --git a/src/layout/header/links.ts b/src/layout/header/links.ts
new file mode 100644
index 0000000..ffaf4e5
--- /dev/null
+++ b/src/layout/header/links.ts
@@ -0,0 +1,12 @@
+export const Links = [
+ {
+ title: "Github",
+ slug: "https://github.com/pheralb/svgl",
+ external: true,
+ },
+ {
+ title: "Twitter",
+ slug: "https://twitter.com/pheralb_",
+ external: true,
+ },
+];
diff --git a/src/layout/header/mobile.tsx b/src/layout/header/mobile.tsx
new file mode 100644
index 0000000..11d57e6
--- /dev/null
+++ b/src/layout/header/mobile.tsx
@@ -0,0 +1,56 @@
+import CustomLink from "@/common/link";
+import {
+ Button,
+ CloseButton,
+ IconButton,
+ useColorModeValue,
+ useDisclosure,
+ VStack,
+} from "@chakra-ui/react";
+import { List } from "phosphor-react";
+import { Links } from "./links";
+
+const Mobile = () => {
+ const bg = useColorModeValue("bg.light", "bg.dark");
+ const mobileNav = useDisclosure();
+ return (
+ <>
+ }
+ onClick={mobileNav.onOpen}
+ />
+
+
+
+ {Links.map((link) => (
+
+
+
+ ))}
+
+ >
+ );
+};
+
+export default Mobile;
diff --git a/src/layout/sidebar/theme.tsx b/src/layout/header/theme.tsx
similarity index 82%
rename from src/layout/sidebar/theme.tsx
rename to src/layout/header/theme.tsx
index 86dce01..589aa90 100644
--- a/src/layout/sidebar/theme.tsx
+++ b/src/layout/header/theme.tsx
@@ -2,19 +2,18 @@ import React from "react";
import { AnimatePresence, motion } from "framer-motion";
import { useColorMode, useColorModeValue } from "@chakra-ui/react";
import CustomIconBtn from "@/common/iconBtn";
-import { IoMoonOutline, IoSunnyOutline } from "react-icons/io5";
+import { Moon, Sun } from "phosphor-react";
const Theme = () => {
const { toggleColorMode } = useColorMode();
const key = useColorModeValue("light", "dark");
const icon = useColorModeValue(
- ,
-
+ ,
+
);
return (
{
- return {children};
+ return (
+ <>
+
+ {children}
+ >
+ );
};
export default Index;
diff --git a/src/layout/sidebar/content.tsx b/src/layout/sidebar/content.tsx
deleted file mode 100644
index 7a8ff39..0000000
--- a/src/layout/sidebar/content.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import React from "react";
-import { SidebarContentProps } from "@/interfaces/components";
-import {
- Box,
- Divider,
- Flex,
- Heading,
- useColorModeValue,
-} from "@chakra-ui/react";
-import { HandGrabbing } from "phosphor-react";
-import CustomLink from "@/common/link";
-import Categories from "./categories";
-
-const Content = (props: SidebarContentProps) => {
- const bg = useColorModeValue("bg.light", "bg.dark");
- return (
-
-
-
-
-
-
-
-
- Categories
-
-
-
-
-
- );
-};
-
-export default Content;
diff --git a/src/layout/sidebar/index.tsx b/src/layout/sidebar/index.tsx
deleted file mode 100644
index 1c401d3..0000000
--- a/src/layout/sidebar/index.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import { SidebarContentProps } from "@/interfaces/components";
-import {
- Box,
- Drawer,
- DrawerContent,
- DrawerOverlay,
- Flex,
- IconButton,
- useColorModeValue,
- useDisclosure,
-} from "@chakra-ui/react";
-import React from "react";
-import { IoApps } from "react-icons/io5";
-import Content from "./content";
-
-const Index = ({ children }: SidebarContentProps) => {
- const sidebar = useDisclosure();
- return (
-
-
-
-
-
-
-
-
-
-
- }
- size="sm"
- />
-
-
-
- {children}
-
-
-
- );
-};
-
-export default Index;
diff --git a/src/pages/api/all.ts b/src/pages/api/all.ts
index 3e4e497..1ca35f0 100644
--- a/src/pages/api/all.ts
+++ b/src/pages/api/all.ts
@@ -1,5 +1,5 @@
-import type { NextApiRequest, NextApiResponse } from "next";
import db from "data/svgs";
+import type { NextApiRequest, NextApiResponse } from "next";
import { SvgData } from "@/interfaces/svgData";
export default function handler(
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 28883c7..3978baf 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -13,18 +13,11 @@ const Home: NextPage = () => {
if (!data) return loading...
;
return (
-
-
- {data.map((svg: SvgData) => (
-
- ))}
-
-
+
+ {data.map((svg: SvgData) => (
+
+ ))}
+
);
};