diff --git a/package-lock.json b/package-lock.json
index 994a74e..3ae2f38 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@trpc/react-query": "^10.37.1",
"@trpc/server": "^10.37.1",
"axios": "^1.6.2",
- "grommet-icons": "^4.11.0",
+ "grommet-icons": "^4.12.1",
"next": "^13.5.4",
"next-auth": "^4.23.0",
"react": "18.2.0",
@@ -2729,9 +2729,9 @@
"dev": true
},
"node_modules/grommet-icons": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/grommet-icons/-/grommet-icons-4.11.0.tgz",
- "integrity": "sha512-ArXf2XyXmpk5JsQ8NudzNz3mbWv+TeZkPiyog2s9yoNAWTlIr3vzNjr97uon/Xm4Uiq2kiHkvO4i2fG1u6EaDg==",
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/grommet-icons/-/grommet-icons-4.12.1.tgz",
+ "integrity": "sha512-LhOP6BkDAGiSNcUOfsGGRo+AKD6zWOXeNeusY1WYvKplAR6mKCAQfH7Nig2Buc/v5zadKSko2NDtCQqwJaME0Q==",
"peerDependencies": {
"react": "^16.6.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0",
diff --git a/package.json b/package.json
index 322cbac..cb9ea73 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
"@trpc/react-query": "^10.37.1",
"@trpc/server": "^10.37.1",
"axios": "^1.6.2",
- "grommet-icons": "^4.11.0",
+ "grommet-icons": "^4.12.1",
"next": "^13.5.4",
"next-auth": "^4.23.0",
"react": "18.2.0",
diff --git a/src/components/footer.tsx b/src/components/footer.tsx
index 5e57b76..4b5998f 100644
--- a/src/components/footer.tsx
+++ b/src/components/footer.tsx
@@ -1,7 +1,7 @@
export default function Footer() {
return (
<>
-
+
The 'PipBoy' is owned by Bethesda, I'm just doing this for fun!
diff --git a/src/components/header.tsx b/src/components/header.tsx
index 33c0d57..8520527 100644
--- a/src/components/header.tsx
+++ b/src/components/header.tsx
@@ -9,14 +9,15 @@ export default function Header({
}: HeaderProps) {
return (
<>
-
-
+
+
+
diff --git a/src/pages/links.tsx b/src/pages/links.tsx
index 4c9ad5a..fa1e508 100644
--- a/src/pages/links.tsx
+++ b/src/pages/links.tsx
@@ -2,25 +2,57 @@ import RootLayout from "@/components/RootLayout";
import Footer from "@/components/footer";
import Header from "@/components/header";
import Link from "next/link";
+import {useState} from 'react';
+
+// icons
+import {
+ Twitter,
+ MailOption
+} from 'grommet-icons'
export default function LinksPage() {
+ const [icon, setIcon] = useState
();
+
return (
-
-
My Links!
-
-
+
+
My Links!
+
+
{
+ setIcon(
)
+ }}
+ onMouseLeave={() => {
+ setIcon(null)
+ }}
+ >
-
Twitter
+ Twitter
-
+
{
+ setIcon(
)
+ }}
+ onMouseLeave={() => {
+ setIcon(null)
+ }}
+ >
-
Mastodon
+ Mastodon
+
+
+ {/* */}
+ {icon}
+
diff --git a/src/pages/radio.tsx b/src/pages/radio.tsx
new file mode 100644
index 0000000..25c509a
--- /dev/null
+++ b/src/pages/radio.tsx
@@ -0,0 +1,47 @@
+import RootLayout from "@/components/RootLayout";
+import Footer from "@/components/footer";
+import Header from "@/components/header";
+import { api } from "@/utils/api";
+
+// next components
+import Link from 'next/link';
+import Image from "next/image";
+
+export default function MusicPage() {
+ const { data: musicData, fetchStatus} = api.misc.song.useQuery();
+
+ return (
+
+
+
+
+ {
+ fetchStatus === "idle" ?
+ musicData?.data.tracks.map((v,k) => {
+ return
+
+
+
{k === 0 && "■"} {v.name}
+
+
+
+ })
+ :
Fetching..
+ }
+
+
+ {
+ fetchStatus === "idle" &&
+
+ }
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/server/api/root.ts b/src/server/api/root.ts
index a229a41..e7585c9 100644
--- a/src/server/api/root.ts
+++ b/src/server/api/root.ts
@@ -1,6 +1,7 @@
import { postRouter } from "@/server/api/routers/post";
import { linksRouter } from "./routers/links";
import { blogRouter } from "./routers/blog";
+import { miscRouter } from "./routers/misc";
import { createTRPCRouter } from "@/server/api/trpc";
/**
@@ -11,7 +12,8 @@ import { createTRPCRouter } from "@/server/api/trpc";
export const appRouter = createTRPCRouter({
post: postRouter,
links: linksRouter,
- blog: blogRouter
+ blog: blogRouter,
+ misc: miscRouter
});
// export type definition of API
diff --git a/src/server/api/routers/misc.ts b/src/server/api/routers/misc.ts
new file mode 100644
index 0000000..5050c63
--- /dev/null
+++ b/src/server/api/routers/misc.ts
@@ -0,0 +1,44 @@
+import axios from 'axios';
+import {
+ createTRPCRouter,
+ publicProcedure
+} from '@/server/api/trpc';
+
+type ImageListType = {
+ "size": string,
+ "#text": string
+}
+
+type TrackResponseType = {
+ status: number,
+ data: {
+ tracks: LastTrackType[]
+ }
+}
+
+type LastTrackType = {
+ "@attr": {
+ "nowplaying": string
+ },
+ "album": {
+ "mbid": string,
+ "#text": string
+ },
+ "artist": {
+ "mbid": string,
+ "#text": string,
+ },
+ "image": ImageListType[],
+ "mbid": string,
+ "name": string,
+ "streamable": number,
+ "url": string
+}
+
+export const miscRouter = createTRPCRouter({
+ song: publicProcedure
+ .query(async () => {
+ const response = await axios.get
("https://api.thatalex.dev/v4/social/music")
+ return response.data
+ }),
+})
\ No newline at end of file