From f6009b3c8344ce77daf418042fcd4b6235e4eef8 Mon Sep 17 00:00:00 2001 From: Ahnaf An Nafee Date: Sun, 6 Mar 2022 19:37:21 -0500 Subject: [PATCH] added support for user info in lib and settings --- pages/_app.js | 4 +++- pages/library.js | 22 ++++++++++++++++++++-- pages/settings.js | 25 ++++++++++++++++++++++--- pages/wishlist.js | 2 ++ 4 files changed, 47 insertions(+), 6 deletions(-) diff --git a/pages/_app.js b/pages/_app.js index 2d3f0fa..b2f4fcf 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -48,8 +48,10 @@ function MyApp({ Component, pageProps }) { if (router.route === "/authenticate") { router.push("/library"); } + } else { + if (router.route !== "/authenticate") router.push("/authenticate"); } - }, [router.pathname, user, router]); + }, [user, router]); const handleAuthSession = async (event, session) => { await fetch("/api/auth", { diff --git a/pages/library.js b/pages/library.js index 52e0453..aa839ac 100644 --- a/pages/library.js +++ b/pages/library.js @@ -6,7 +6,8 @@ import { BookDetails } from "../components/BookDetails"; import { useRouter } from "next/router"; import { NextSeo } from "next-seo"; import useSWR from "swr"; -import { useUser } from "@clerk/nextjs"; +import { supabaseClient } from "../lib/client"; +import { useEffect, useState } from "react"; const fetcher = (...args) => fetch(...args).then((res) => res.json()); @@ -17,6 +18,23 @@ function Library() { `https://www.googleapis.com/books/v1/volumes?q=George R R Martin&maxResults=15`, fetcher ); + const [name, setName] = useState(""); + + const user = supabaseClient.auth.user(); + + useEffect(() => { + if (user) { + supabaseClient + .from("profiles") + .select("*") + .eq("id", user.id) + .then(({ data, error }) => { + if (!error) { + setName(data[0].first_name || ""); + } + }); + } + }, [user]); React.useEffect(() => { if (bookData) setData(bookData.items); @@ -32,7 +50,7 @@ function Library() {
- Welcome Alyssa + Welcome {name} { + if (user) { + supabaseClient + .from("profiles") + .select("*") + .eq("id", user.id) + .then(({ data, error }) => { + if (!error) { + setName(data[0].first_name || ""); + setEmail(data[0].email || ""); + } + }); + } + }, [user]); + return (
@@ -69,7 +88,7 @@ export default function Settings() { type={"email"} placeholder="Email" readOnly - value={values.email} + value={email} /> diff --git a/pages/wishlist.js b/pages/wishlist.js index 060b3c7..9e94e1a 100644 --- a/pages/wishlist.js +++ b/pages/wishlist.js @@ -6,6 +6,8 @@ import { BookDetails } from "../components/BookDetails"; import { useRouter } from "next/router"; import { NextSeo } from "next-seo"; import useSWR from "swr"; +import { supabaseClient } from "../lib/client"; +import { useEffect, useState } from "react"; const fetcher = (...args) => fetch(...args).then((res) => res.json());