Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Escodon/Flavourdeck
Browse files Browse the repository at this point in the history
  • Loading branch information
Niceygy committed Dec 21, 2023
2 parents e177592 + 991b765 commit b63e487
Show file tree
Hide file tree
Showing 17 changed files with 69 additions and 65 deletions.
File renamed without changes.
2 changes: 1 addition & 1 deletion src/pages/api/firebase.ts → src/api/firebase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ let firebaseConfig;
// };
// } else {
// try {
firebaseConfig = require("../../../firebase.json");
firebaseConfig = require("../../firebase.json");
// } catch (error) {
// console.log("Could not load firebase.json:", error);
// }
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
43 changes: 21 additions & 22 deletions src/pages/api/users/functions.ts → src/api/users/functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,16 @@ export const runtime = 'edge';

/**
* Logs out the currently authenticated user.
* @returns {Promise}.
*/
export async function logoutUser(): Promise<void> {
log("Logging out user", "logoutUser");
return signOut(auth)
.then(() => {
log("User logged out", "logoutUser");
})
.catch((error) => {
log(`Error logging out user: ${error}`, "logoutUser");
});

try {
await signOut(auth)
log("User logged out", "logoutUser");
} catch (error) {
log(`Error logging out user: ${error}`, "logoutUser");
}
}

/**
Expand All @@ -37,19 +36,19 @@ export async function authUser(email: string, password: string): Promise<any> {
log(`Authenticating user with email ${email}`, "authUser");
setPersistence(auth, browserLocalPersistence).then(() => {
log("Persisitence set to local", "authUser/setPersistence")
return signInWithEmailAndPassword(auth, email, password)
.then((userCredential) => {
// Signed in
log(`User with email ${email} authenticated`, "authUser")
const user = userCredential.user;
return { error: false, user };
})
.catch((error) => {
log(`User with email ${email} failed to authenticate. Error: ${error.message}`, "authUser")
const errorCode = error.code;
const errorMessage = error.message;
return { error: true, code: errorCode, message: errorMessage };
});
return signInWithEmailAndPassword(auth, email, password)
.then((userCredential) => {
// Signed in
log(`User with email ${email} authenticated`, "authUser")
const user = userCredential.user;
return { error: false, user };
})
.catch((error) => {
log(`User with email ${email} failed to authenticate. Error: ${error.message}`, "authUser")
const errorCode = error.code;
const errorMessage = error.message;
return { error: true, code: errorCode, message: errorMessage };
});
}).catch((error) => {
// Handle Errors here.
const errorCode = error.code;
Expand Down Expand Up @@ -143,7 +142,7 @@ export function listenForUser(callbackFn: (user: User | null) => void) {
listenForUserFnArray.push(callbackFn)
}

export async function getPublicUserInfo(uid:string) {
export async function getPublicUserInfo(uid: string) {
let UsersCollection = collection(db, "users");
let userSettings: UserSettings = {} as UserSettings;
const querySnapshot = await getDocs(UsersCollection);
Expand Down
File renamed without changes.
File renamed without changes.
15 changes: 8 additions & 7 deletions src/pages/_app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ import type { AppProps } from "next/app";
import Image from "next/image";
import { useRouter } from "next/router";
import { useState } from "react";
import log from "./api/log";
import { listenForUser } from "./api/users/functions";
import log from "../api/log";
import { listenForUser, logoutUser } from "../api/users/functions";

var loggedIn = false;
export function toggleLoggedIn() {
loggedIn = !loggedIn;
return loggedIn;
}


function LoginButton() {
return (
<button className="primary" style={{ float: "right", marginRight: "0" }}>
Expand All @@ -22,26 +23,26 @@ function LoginButton() {
}

function LogoutButton() {
return (
return (
<button onClick={() => {
}} className="primary" style={{ float: "right", marginRight: "0" }}>
logoutUser()
}} className="primary" style={{ float: "right", marginRight: "0" }}>
Log out
</button>
);
}

export default function App({ Component, pageProps }: AppProps) {
const [topBarClass, setTopBarClass] = useState("topBar");
const [buttons, setButtons] = useState([<LoginButton/>]);
const [buttons, setButtons] = useState<Array<any>>();
const router = useRouter();
function pushToIndex() {
router.push("/");
}

listenForUser((user) => {
log("User logged in!", "_app/listenForUser");
setButtons([])
setButtons([<LogoutButton />])
});

return (
Expand Down
38 changes: 19 additions & 19 deletions src/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,30 @@ import { User } from 'firebase/auth';
import Head from 'next/head';
import { useRouter } from 'next/router';
import { useState } from 'react';
import log from './api/log';
import { listenForUser } from './api/users/functions';
import log from '../api/log';
import { listenForUser } from '../api/users/functions';



export default function Home() {
const [localUser, setLocalUser] = useState<User | null>(null);
listenForUser((user) => {
if (!user) {
log("User is null! Redirecting to login page", "settings/listenForUser");
router.push({
pathname: "/login",
query: {
then: "/settings",
thenDisplayName: "Settings",
},
});
} else {
setLocalUser(user);
log("User signed in. Continuing...", "settings/listenForUser");
}
});
if (!user) {
log("User is null! Redirecting to login page", "settings/listenForUser");
router.push({
pathname: "/login",
query: {
then: "/settings",
thenDisplayName: "Settings",
},
});
} else {
setLocalUser(user);
log("User signed in. Continuing...", "settings/listenForUser");
}
});
const router = useRouter();
function push(path:string) {router.push(path)}
function push(path: string) { router.push(path) }
return (
<>
<Head>
Expand All @@ -36,13 +36,13 @@ export default function Home() {
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
<h1>Welcome to Flavourdeck </h1>
<h1>Welcome to Flavourdeck</h1>

<BouncyButton shouldBounceEval={() => { return true }} className='primary' onClick={() => {push('/recipe/new')}}> Start cooking </BouncyButton>
{/* <BouncyButton shouldBounceEval={() => { return true }} className='primary'>
Start cooking
</BouncyButton> */}
<button className='primary' onClick={() => {push('/settings')}}>Settings</button>
<button className='primary' onClick={() => { push('/settings') }}>Settings</button>
</main>
</>
)
Expand Down
16 changes: 8 additions & 8 deletions src/pages/recipe/new.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import Head from "next/head";
import { useRouter } from "next/router";
import { useState } from "react";
import Recipe, { instruction, newRecipe } from "../api/food/functions";
import log from "../api/log";
import { listenForUser } from "../api/users/functions";
import Recipe, { instruction, newRecipe } from "../../api/recipe/functions";
import log from "../../api/log";
import { listenForUser } from "../../api/users/functions";

export default function NewFood() {
export default function Newrecipe() {
const [instructionBox, setTextBoxes] = useState([{ id: 0, value: "" }]);
const [localUser, setLocalUser] = useState<User | null>(null);
const router = useRouter();
Expand All @@ -18,17 +18,17 @@ export default function NewFood() {

listenForUser((user) => {
if (!user) {
log("User is null! Redirecting to login page", "food/new/listenForUser");
log("User is null! Redirecting to login page", "recipe/new/listenForUser");
router.push({
pathname: "/login",
query: {
then: "/food/new",
then: "/recipe/new",
thenDisplayName: "Settings",
},
});
} else {
setLocalUser(user);
log("User signed in. Continuing...", "food/new/listenForUser");
log("User signed in. Continuing...", "recipe/new/listenForUser");
}
});

Expand Down Expand Up @@ -67,7 +67,7 @@ export default function NewFood() {
};
async function handleSubmit() {
let value = await getValues();
log("DEBUG: " + JSON.stringify(value), "food/new/getValues");
log("DEBUG: " + JSON.stringify(value), "recipe/new/getValues");
await newRecipe(value, localUser?.uid || null, false);
}

Expand Down
6 changes: 3 additions & 3 deletions src/pages/settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { updateProfile } from "firebase/auth";
import Head from "next/head";
import { useRouter } from "next/router";
import { useState } from "react";
import { auth } from "./api/firebase";
import log from "./api/log";
import { listenForUser } from "./api/users/functions";
import { auth } from "../api/firebase";
import log from "../api/log";
import { listenForUser } from "../api/users/functions";

export default function UserSettings() {
const router = useRouter();
Expand Down
4 changes: 2 additions & 2 deletions src/pages/users/login.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import type { AppProps } from "next/app";
import { useRouter } from "next/router";
import { FormEvent, useEffect, useState } from "react";
import { toggleLoggedIn } from "../_app";
import log from "../api/log";
import { authUser, newUser } from "../api/users/functions";
import log from "../../api/log";
import { authUser, newUser } from "../../api/users/functions";


log("Login page called", "login");
Expand Down
2 changes: 1 addition & 1 deletion src/pages/users/logout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Head from 'next/head';
import { useRouter } from 'next/router';
import { logoutUser } from '../api/users/functions';
import { logoutUser } from '../../api/users/functions';



Expand Down
2 changes: 1 addition & 1 deletion src/pages/users/profile.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Head from 'next/head';
import { useRouter } from 'next/router';
import { getPublicUserInfo } from '../api/users/functions';
import { getPublicUserInfo } from '../../api/users/functions';



Expand Down
6 changes: 5 additions & 1 deletion src/styles/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,17 @@ input, textarea {
padding-top: 9.5px;
padding-bottom: 9px;
margin-bottom: 11px;
width: 98%;
width: calc(100% - 8px);
box-sizing: border-box;
font-family: var(--sansSerif);
box-shadow: 2.5px 2.5px 10px rgb(230, 230, 230);
transition: border 0.4s;
}

textarea {
min-height: 80px;
}

input:focus, textarea:focus {
border: 1px solid var(--primaryAccentColour);
transition: border 0.4s;
Expand Down

0 comments on commit b63e487

Please sign in to comment.