From 9f4a4749ab12080be41956d969717c4dbf1981bb Mon Sep 17 00:00:00 2001 From: James Wyndham Date: Thu, 29 Feb 2024 13:41:40 +0800 Subject: [PATCH] bugfix - fixed modal --- Frontend/components/Header.tsx | 9 +++++++-- Frontend/components/Modals/ModalSignUp.tsx | 13 +++++++++---- Frontend/components/PriceCard.tsx | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Frontend/components/Header.tsx b/Frontend/components/Header.tsx index 0e23a2f..f975f7f 100644 --- a/Frontend/components/Header.tsx +++ b/Frontend/components/Header.tsx @@ -17,13 +17,16 @@ interface HeaderProps { } export default function Header({ isUserLoggedIn }: HeaderProps) { + //Advice: Remove this and replace it with proper state management like Redux, Recoil or Zustand const [user, setUser] = useState(); + const [statefulUser, setStatefulUser] = useState(); useEffect(() => { (async () => { const user = await getUser(); setUser(user as User); })(); - }, []); + }, [statefulUser]); + //End Advice const { theme, setTheme } = useTheme(); return (
@@ -98,6 +101,8 @@ export default function Header({ isUserLoggedIn }: HeaderProps) {
); } diff --git a/Frontend/components/Modals/ModalSignUp.tsx b/Frontend/components/Modals/ModalSignUp.tsx index dd09a31..b0309f1 100644 --- a/Frontend/components/Modals/ModalSignUp.tsx +++ b/Frontend/components/Modals/ModalSignUp.tsx @@ -1,6 +1,6 @@ "use client"; -import React from "react"; +import React, { Dispatch, SetStateAction } from "react"; import Icon from "@/components/Icon/Icon"; import { useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; @@ -9,10 +9,14 @@ import { companySizeList } from "@/constants"; import pb from "@/lib/pocketbase"; import { createCheckoutSession, login } from "@/app/(auth)/actions"; import { toast } from "react-toastify"; -import { Price } from "@/types"; +import { Price, User } from "@/types"; import { useRouter } from "next/navigation"; -function ModalSignUp() { +function ModalSignUp({ + setUser, +}: { + setUser: Dispatch>; +}) { const { register, handleSubmit, @@ -60,7 +64,7 @@ function ModalSignUp() { organisationSize: data.organisationSize, }); //create user - await pb + const user = await pb .collection("user") .create({ ...data, organisation: organisation.id }); //login user @@ -71,6 +75,7 @@ function ModalSignUp() { document.getElementById("sign-up-modal")?.click(); const price = localStorage.getItem("price"); const type = localStorage.getItem("type"); + setUser(user as User); console.log("price", price); console.log("type", type); price && generateCheckoutPage(JSON.parse(price), type ?? ""); diff --git a/Frontend/components/PriceCard.tsx b/Frontend/components/PriceCard.tsx index 9cd6846..5e1be8f 100644 --- a/Frontend/components/PriceCard.tsx +++ b/Frontend/components/PriceCard.tsx @@ -17,7 +17,7 @@ export default function PriceCard({ }) { const router = useRouter(); const openSignUpModalOnPriceClick = (price: Price, type: string) => { - const signUpModal = document.getElementById("sign-up-modal-button"); + const signUpModal = document.getElementById("sign-up-modal"); if (!signUpModal) return; signUpModal.click(); };