diff --git a/components/nav.jsx b/components/nav.jsx index 83e1ffb..d5fd083 100644 --- a/components/nav.jsx +++ b/components/nav.jsx @@ -1,7 +1,11 @@ -import React from "react"; +import React, { useState } from "react"; import NavStyle from "./nav.style"; import Link from "next/link"; import { useLanyard } from "react-use-lanyard"; +import IconButton from "@mui/material/IconButton"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import MenuIcon from "@mui/icons-material/Menu"; const LINKS = [ { @@ -23,6 +27,16 @@ function Nav() { userId: "457039372009865226", socket: true, }); + + const [anchorEl, setAnchorEl] = useState(null); + const open = Boolean(anchorEl); + const handleClick = (event) => { + setAnchorEl(event.currentTarget); + }; + const handleClose = () => { + setAnchorEl(null); + }; + return ( @@ -50,6 +64,33 @@ function Nav() { ))} + {/* Mobile Menu */} +
+ + + + + {LINKS.map(({ title, href }, index) => ( + + {title} + + ))} + +
); } diff --git a/components/nav.style.js b/components/nav.style.js index 03003cd..83aa066 100644 --- a/components/nav.style.js +++ b/components/nav.style.js @@ -25,6 +25,17 @@ export default styled.nav` /* padding: 20px; */ margin-left: 10px; } + @media (max-width: 900px) { + display: none; + } + } + .menu { + button { + color: white !important; + } + @media (min-width: 901px) { + display: none; + } } .indicator { .circle { diff --git a/components/skills.jsx b/components/skills.jsx index afd308b..c556546 100644 --- a/components/skills.jsx +++ b/components/skills.jsx @@ -1,29 +1,55 @@ import React, { useEffect, useState } from "react"; import Skill from "./skillCard"; import SkillsStyle from "./skills.style"; -import axios from "axios"; +import axios from "handlers/axios"; +import { APISDK } from "handlers/sdk"; function Skills() { const [skills, setSkills] = useState({}); + const [loading, setLoading] = useState(true); + useEffect(() => { - axios.get("").then((res) => { - setSkills(res.data); - }); - }, []); + // axios + // .get("/portfolio/api") + // .then((res) => { + // setSkills(res.data); + // console.log(res.data); + // setLoading(false); + // }) + // .catch((err) => { + // console.log(err); + // }); + + const interval = setInterval(() => { + let [valid, skill] = APISDK.req(); + if (valid) { + setSkills(skill); + setLoading(false); + console.log(skill); + } else { + console.error(skill); + setLoading(true); + } + }, 5000); + }, [loading, APISDK]); return ( - -
- - - - - -
-
+ <> + {!loading && ( + +
+ + + + + +
+
+ )} + ); } diff --git a/handlers/axios.js b/handlers/axios.js index d378720..6f9fdc2 100644 --- a/handlers/axios.js +++ b/handlers/axios.js @@ -1 +1,5 @@ import axios from "axios"; + +export default axios.create({ + baseURL: "https://api.b68dev.xyz", +}); diff --git a/handlers/requester.js b/handlers/requester.js new file mode 100644 index 0000000..559250b --- /dev/null +++ b/handlers/requester.js @@ -0,0 +1,18 @@ +import axios from "./axios"; + +export const tempEndpoint = (endpoint) => { + let response = [false, { error: "Error" }]; + var reqPromise = axios + .get(endpoint) + .then((res) => { + console.log(res.data); + response = [true, res.data]; + }) + .catch((err) => { + console.log(err); + response = [false, err]; + }); + Promise.all(reqPromise).then(() => { + return response; + }); +}; diff --git a/handlers/sdk.js b/handlers/sdk.js new file mode 100644 index 0000000..ec0ec8f --- /dev/null +++ b/handlers/sdk.js @@ -0,0 +1,18 @@ +import { tempEndpoint } from "./requester"; +// gh_user, +// discord_activity, +// osu_recent, +// osu_user, +// osu_bestScores, +// spotify_top_songs, +// wakatime_user, +// wakatime_stats, +// hn_user, +// twitter_user, +// twitter_tweets, + +export const APISDK = { + req() { + return tempEndpoint("/me/github/userdata"); + }, +};