diff --git a/client/src/App.tsx b/client/src/App.tsx index 4d72250..425011a 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -1,45 +1,30 @@ // react imports import { BrowserRouter, Route, Routes } from 'react-router-dom' -import { useEffect, useState } from 'react' +import { useEffect } from 'react' // components import Home from './components/Home' import Navbar from './components/Nav/Navbar' import AuthForm from './components/Auth/AuthForm' +import Cart from './components/Cart/Cart' +import AllProducts from './components/Product/AllProducts' +import ProductPage from './components/Product/ProductPage' +import UserProfile from './components/User/UserProfile' +import UserSettings from './components/User/UserSettings' +import OrderHistory from './components/Order/OrderHistory' +import OrderRecord from './components/Order/OrderRecord' // util import { SupabaseProvider, getSupabaseClient, useSupabase } from './supabase/SupabaseContext' -import { initialState } from './util/initialState' -import { AppState } from './util/types' import './App.scss' export default function App() { - const [state, setState] = useState(initialState); const supabase = useSupabase(); useEffect(() => { - setState((prev: AppState) => { - let newUser; - let newSession; - - if (supabase) { - newSession = supabase.auth.session(); - newUser = supabase.auth.user(); - } - - return { - ...prev, - supabase: supabase, - user: newUser ?? prev.user, - session: newSession ?? prev.session - } - }) + console.log(supabase); }, [supabase]) - useEffect(() => { - console.log(state); - }, [state]); - return ( @@ -47,12 +32,26 @@ export default function App() { - {/* Top level route */} + {/* Top level home page */} } /> - {/* Second level routes */} + {/* Auth routes */} } /> } /> + + {/* Product components */} + } /> + } /> + + {/* User data */} + } /> + } /> + } /> + + {/* Order data */} + } /> + } /> + diff --git a/client/src/components/Cart/Cart.tsx b/client/src/components/Cart/Cart.tsx index e69de29..208bf2a 100644 --- a/client/src/components/Cart/Cart.tsx +++ b/client/src/components/Cart/Cart.tsx @@ -0,0 +1,5 @@ +export default function Cart() { + return ( +

Cart!

+ ) +} \ No newline at end of file diff --git a/client/src/components/Home.tsx b/client/src/components/Home.tsx index fe64de3..5e73153 100644 --- a/client/src/components/Home.tsx +++ b/client/src/components/Home.tsx @@ -5,12 +5,13 @@ export default function Home() { return (
-

Vite + React + Supabase

-

Check out the user stuff below:

+

The finest spice shop on the internet.

+

Or at the very least, what their website could look like.

- - + + +
) diff --git a/client/src/components/Nav/Navbar.tsx b/client/src/components/Nav/Navbar.tsx index a39666a..e3c539d 100644 --- a/client/src/components/Nav/Navbar.tsx +++ b/client/src/components/Nav/Navbar.tsx @@ -21,7 +21,12 @@ export default function Navbar() {

Express Spice Market

{ - user?.email &&

{user.email}

+ user?.email && ( + <> +

{user.email}

+ + + ) } { user ? : ( diff --git a/client/src/components/Product/Product.scss b/client/src/components/Order/OrderCard.tsx similarity index 100% rename from client/src/components/Product/Product.scss rename to client/src/components/Order/OrderCard.tsx diff --git a/client/src/components/Order/OrderHistory.tsx b/client/src/components/Order/OrderHistory.tsx new file mode 100644 index 0000000..a053b5e --- /dev/null +++ b/client/src/components/Order/OrderHistory.tsx @@ -0,0 +1,5 @@ +export default function OrderHistory() { + return ( +

Order History!

+ ) +} \ No newline at end of file diff --git a/client/src/components/Order/OrderRecord.tsx b/client/src/components/Order/OrderRecord.tsx new file mode 100644 index 0000000..4d8182a --- /dev/null +++ b/client/src/components/Order/OrderRecord.tsx @@ -0,0 +1,3 @@ +export default function OrderRecord() { + return

Order Record!

+} \ No newline at end of file diff --git a/client/src/components/Product/AllProducts.tsx b/client/src/components/Product/AllProducts.tsx new file mode 100644 index 0000000..759dece --- /dev/null +++ b/client/src/components/Product/AllProducts.tsx @@ -0,0 +1,5 @@ +export default function AllProducts() { + return ( +

All Products!

+ ) +} \ No newline at end of file diff --git a/client/src/components/Product/Product.tsx b/client/src/components/Product/ProductCard.tsx similarity index 100% rename from client/src/components/Product/Product.tsx rename to client/src/components/Product/ProductCard.tsx diff --git a/client/src/components/Product/ProductPage.tsx b/client/src/components/Product/ProductPage.tsx new file mode 100644 index 0000000..6ea4cf2 --- /dev/null +++ b/client/src/components/Product/ProductPage.tsx @@ -0,0 +1,5 @@ +export default function ProductPage() { + return ( +

Product Page!

+ ) +} \ No newline at end of file diff --git a/client/src/components/User/User.scss b/client/src/components/User/User.scss deleted file mode 100644 index e69de29..0000000 diff --git a/client/src/components/User/User.tsx b/client/src/components/User/User.tsx deleted file mode 100644 index e69de29..0000000 diff --git a/client/src/components/User/UserProfile.tsx b/client/src/components/User/UserProfile.tsx new file mode 100644 index 0000000..d778c1f --- /dev/null +++ b/client/src/components/User/UserProfile.tsx @@ -0,0 +1,21 @@ +import { useNavigate } from "react-router-dom"; +import { useSupabase } from "../../supabase/SupabaseContext" + +export default function UserProfile() { + const supabase = useSupabase(); + const navigate = useNavigate(); + + return ( +
+

User Profile!

+

Your email is {supabase?.auth.user()?.email || "not found"}

+ +

Options:

+
+ + + +
+
+ ) +} \ No newline at end of file diff --git a/client/src/components/User/UserSettings.tsx b/client/src/components/User/UserSettings.tsx new file mode 100644 index 0000000..45a0234 --- /dev/null +++ b/client/src/components/User/UserSettings.tsx @@ -0,0 +1,3 @@ +export default function UserSettings() { + return

User Settings!

+} \ No newline at end of file