diff --git a/development/src/app/layout.js b/development/src/app/layout.js index 79cae4b3..07bec60c 100644 --- a/development/src/app/layout.js +++ b/development/src/app/layout.js @@ -1,20 +1,23 @@ -'use client'; +"use client"; -import './globals.css'; -import { nohemi } from '@/app/localFont'; -import { ThemeProvider } from 'next-themes'; -import { TabProvider } from '@/composables/tabContext'; -import { SessionContextProvider } from '@/composables/sessionContext'; +import "./globals.css"; +import { nohemi } from "@/app/localFont"; +import { ThemeProvider } from "next-themes"; +import { TabProvider } from "@/composables/tabContext"; +import { SessionContextProvider } from "@/composables/sessionContext"; +import { AuthProvider } from "@/composables/authContext"; export default function RootLayout({ children }) { return ( - - - {children} - - + + + + {children} + + + ); diff --git a/development/src/components/navbar_components/editorNavbar_comp.js b/development/src/components/navbar_components/editorNavbar_comp.js index b3118fd6..e0a48e51 100644 --- a/development/src/components/navbar_components/editorNavbar_comp.js +++ b/development/src/components/navbar_components/editorNavbar_comp.js @@ -1,29 +1,22 @@ -'use client'; -import { useState, useContext, useEffect } from 'react'; -import AuthNavControls from './authNavControls_comp'; -import Image from 'next/image'; -import moon from '../../../public/assets/onboardingIcons/moon.png'; -import sun from '../../../public/assets/onboardingIcons/sun.png'; -import { useTheme } from 'next-themes'; -import { useTabContext } from '@/composables/tabContext'; -import { Suspense } from 'react'; -import userIcon from '../../../public//assets/authNavBarControls/peers-2.png'; -import { isUserSignedIn } from '@/composables/verifySignedIn'; -import { appAuth } from '@/composables/firebaseConfig/config'; -import Link from 'next/link'; +"use client"; +import { useState, useContext, useEffect } from "react"; +import AuthNavControls from "./authNavControls_comp"; +import Image from "next/image"; +import moon from "../../../public/assets/onboardingIcons/moon.png"; +import sun from "../../../public/assets/onboardingIcons/sun.png"; +import { useTheme } from "next-themes"; +import { useTabContext } from "@/composables/tabContext"; +import { Suspense } from "react"; +import userIcon from "../../../public//assets/authNavBarControls/peers-2.png"; +import { isUserSignedIn } from "@/composables/verifySignedIn"; +import { appAuth } from "@/composables/firebaseConfig/config"; +import Link from "next/link"; +import { useAuthContext } from "@/composables/authContext"; function EditorNavBar() { - const [auth, setAuth] = useState(true); const { theme, setTheme } = useTheme(); const { items } = useTabContext(); - - useEffect(() => { - if (isUserSignedIn()) { - setAuth(true); - } else { - setAuth(false); - } - }, [appAuth]); + const { currentUser } = useAuthContext(); return (
@@ -32,7 +25,7 @@ function EditorNavBar() {

Carai

- {auth ? ( + {currentUser ? (
- {!isUserSignedIn() && (items.length > 1 || items[0]?.title !== "Welcome") && ( - <> - - Sign Up - - - Log In - - - )} + {!currentUser && + (items.length > 1 || items[0]?.title !== "Welcome") && ( + <> + + Sign Up + + + Log In + + + )}
)} diff --git a/development/src/components/signup_comp.js b/development/src/components/signup_comp.js index 82794b9f..81c7ae6b 100644 --- a/development/src/components/signup_comp.js +++ b/development/src/components/signup_comp.js @@ -53,7 +53,6 @@ function SignUpComponent() { const [usernameAvailable, setUsernameAvailable] = useState(null); const [showVerificationOverlay, setShowVerificationOverlay] = useState(false); const [showForm, setShowForm] = useState(true); - const router = useRouter(); const handleCloseForm = () => { setShowForm(false); diff --git a/development/src/composables/authContext.js b/development/src/composables/authContext.js new file mode 100644 index 00000000..8f3717d2 --- /dev/null +++ b/development/src/composables/authContext.js @@ -0,0 +1,32 @@ +import { useEffect } from "react"; +import { useState } from "react"; +import { useContext, createContext } from "react"; +import { appAuth } from "./firebaseConfig/config"; + +export const AuthContext = createContext(); + +export const AuthProvider = ({ children }) => { + const [currentUser, setCurrentUser] = useState(""); + + useEffect(() => { + const persistUser = localStorage.getItem("user"); + + setCurrentUser(JSON.parse(persistUser)); + }, []); + + useEffect(() => { + appAuth.onAuthStateChanged((user) => { + setCurrentUser(user); + }); + }, []); + + return ( + + {children} + + ); +}; + +export const useAuthContext = () => { + return useContext(AuthContext); +}; diff --git a/development/src/composables/sessionContext.js b/development/src/composables/sessionContext.js index 8e8132dc..63fdc780 100644 --- a/development/src/composables/sessionContext.js +++ b/development/src/composables/sessionContext.js @@ -1,14 +1,22 @@ -import { useEffect } from 'react'; -import { useState } from 'react'; -import { useContext, createContext } from 'react'; +import { useEffect } from "react"; +import { useState } from "react"; +import { useContext, createContext } from "react"; export const SessionContext = createContext(); export const SessionContextProvider = ({ children }) => { const [sessionData, setSessionData] = useState({}); + const [storeSession, setStoreSession] = useState({}); return ( - + {children} ); diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index bb552997..00000000 --- a/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "P2PCoder", - "lockfileVersion": 3, - "requires": true, - "packages": {} -}