diff --git a/.gitignore b/.gitignore index ceea336..4e6e2c4 100644 --- a/.gitignore +++ b/.gitignore @@ -35,5 +35,3 @@ yarn-error.log* # prisma data /prisma/migrations /prisma/borders.db - -/public/images \ No newline at end of file diff --git a/components/select.js b/components/select.js deleted file mode 100644 index 5c94a37..0000000 --- a/components/select.js +++ /dev/null @@ -1,43 +0,0 @@ -import Image from "next/image"; -import styles from "../styles/Components.module.css"; - -export default function Select(props) { - const { data, onSelect, selected = {} } = props; - console.log("data", data, "selected", selected); - return ( -
- {data && - data.map((border, index) => { - return ( -
- user image { - onSelect(border.id); - }} - /> - {`border { - onSelect(border.id); - }} - /> -
- ); - })} -
- ); -} diff --git a/components/userInfo.js b/components/userInfo.js index a871f72..18c440d 100644 --- a/components/userInfo.js +++ b/components/userInfo.js @@ -2,23 +2,44 @@ import { useSession, signIn, signOut } from "next-auth/react"; import { useEffect, useState } from "react"; import styles from "../styles/Components.module.css"; -export default function UserInfo(props) { +export default function UserInfo(borderInfo) { const { data: session } = useSession(); - const { borderData } = props; + const [isLoading, setLoading] = useState(false); + const [borderData, setBorderData] = useState(undefined); + + useEffect(async () => { + setLoading(true); + const res = await fetch('api/user/border/@me'); + const data = await res.json(); + setBorderData(data); + setLoading(false); + }, []); return ( -
-

- {session - ? `Signed in as ${session.user.name} (${borderData?.discordId})` - : "Not signed in"} -
- {session ? ( - - ) : ( - - )} -

+
{ + isLoading ? +

Loading...

+ : +
+

+ {session ? `Signed in as ${session.user.name} (${borderData.discordId})` : "Not signed in"} +
+ {session ? ( + + ) : ( + + )} +

+ { + !!borderData ? + (
+ + +
) + : undefined + } +
+ }
); } diff --git a/lib/borders.js b/lib/borders.js index 1c6a864..7d31646 100644 --- a/lib/borders.js +++ b/lib/borders.js @@ -4,14 +4,10 @@ import prisma from "./prisma"; export const getBorderById = async (id) => { return await prisma.borderImage.findFirst({ where: { - id: parseInt(id), - }, + id: parseInt(id) + } }); -}; - -export const getAllBorders = async () => { - return await prisma.borderImage.findMany(); -}; +} export const getUserBorders = async (req) => { const session = await getSession({ req }); diff --git a/pages/api/border/[id].js b/pages/api/border/[id].js index 9c5ffdb..b5de21a 100644 --- a/pages/api/border/[id].js +++ b/pages/api/border/[id].js @@ -1,8 +1,14 @@ import { getBorderById } from "../../../lib/borders"; export default function handler(req, res) { - const id = req.query.id; - getBorderById(id).then((result) => { - return res.status(200).json(result); - }); -} + const id = req.query.id; + + console.log(id); + + getBorderById(id).then((result) => { + const imageName = result?.imageName ?? "default.png"; + + // return res.status(200).json(result); + return res.redirect(301, `/images/${imageName}`) + }); + } \ No newline at end of file diff --git a/pages/api/border/all.js b/pages/api/border/all.js deleted file mode 100644 index b189ccf..0000000 --- a/pages/api/border/all.js +++ /dev/null @@ -1,7 +0,0 @@ -import { getAllBorders } from "../../../lib/borders"; - -export default function handler(req, res) { - getAllBorders().then((result) => { - return res.status(200).json(result); - }); -} diff --git a/pages/index.js b/pages/index.js index 065805e..4596f3b 100644 --- a/pages/index.js +++ b/pages/index.js @@ -2,29 +2,8 @@ import Head from "next/head"; import Image from "next/image"; import styles from "../styles/Home.module.css"; import UserInfo from "../components/userInfo"; -import Select from "../components/select"; -import { useEffect, useState } from "react"; export default function Home() { - const [data, setData] = useState(null); - const [borderData, setBorderData] = useState(null); - const [selected, setSelected] = useState(0); - - useEffect(() => { - fetch("api/border/all") - .then((res) => res.json()) - .then((data) => setData(data)); - }, []); - - useEffect(() => { - fetch("api/user/border/@me") - .then((res) => res.json()) - .then((data) => { - setBorderData(data); - setSelected(data?.borderId || 0); - }); - }, []); - return (
@@ -32,14 +11,10 @@ export default function Home() { -
+ +

Steam Borders

-
- -
-
-
-