diff --git a/src/components/ItemLister.js b/src/components/ItemLister.js index e371519..9c59b51 100644 --- a/src/components/ItemLister.js +++ b/src/components/ItemLister.js @@ -53,6 +53,7 @@ const ItemLister = ({ const [editedTypeName, setEditedTypeName] = useState(typeName); const typeNameInputRef = useRef(null); + const handlePlusClick = (itemId) => { const updatedItems = items.map((item) => { if (item.itemId === itemId) { @@ -124,6 +125,14 @@ const ItemLister = ({ } }; + useEffect(() => { + if(beingEditedType == itemTypeId)return; + + setOnEditItem(0); + setIsAddingNewItem(false); + console.log(itemTypeId) + }, [beingEditedType]); + const toggleAddNewItem = () => { setIsAddingNewItem((prev) => !prev); setOnEditItem(0); @@ -184,16 +193,13 @@ const ItemLister = ({ return ( <> {(items.length > 0 || - (user && user.roleId == 1 && user.userId == shopOwnerId)) && ( + (user && (user.cafeId == shopId || user.userId == shopOwnerId))) && (
{!raw && (
setEditedTypeName(e.target.value)} disabled={!isEdit} /> - {isEditMode && - user && - user.roleId == 1 && - user.userId == shopOwnerId && ( + {isEditMode && ( <> - - ) : ( - <> - setEmail(e.target.value)} - ref={emailInputRef} - style={{ transform: "translate(90%, -120%) rotate(0deg)" }} - /> - setUsername(e.target.value)} - ref={usernameInputRef} - style={{ transform: "translate(30%, 350%) rotate(90deg)" }} - /> - setPassword(e.target.value)} - ref={passwordInputRef} - style={{ transform: "translate(-90%, 115%) rotate(180deg)" }} - /> - - - )} + setUsername(e.target.value)} + ref={usernameInputRef} + style={{ transform: "translate(60%, -220%) rotate(0deg)" }} + /> + setPassword(e.target.value)} + ref={passwordInputRef} + style={{ transform: "translate(90%, -90%) rotate(0deg)" }} + /> + + setEmail(e.target.value)} + ref={emailInputRef} + style={{ transform: "translate(30%, 320%) rotate(90deg)" }} + /> + setUsername(e.target.value)} + ref={usernameInputRef} + style={{ transform: "translate(10%, 320%) rotate(90deg)" }} + /> + setPassword(e.target.value)} + ref={passwordInputRef} + style={{ transform: "translate(-10%, 320%) rotate(90deg)" }} + /> + Coffee
diff --git a/src/config.js b/src/config.js index 7335e06..8886979 100644 --- a/src/config.js +++ b/src/config.js @@ -1,5 +1,5 @@ // src/config.js -const API_BASE_URL = "https://3nvnzs-5000.csb.app"; // Replace with your actual backend URL +const API_BASE_URL = "https://yjgyr4-5000.csb.app"; // Replace with your actual backend URL export default API_BASE_URL; diff --git a/src/helpers/userHelpers.js b/src/helpers/userHelpers.js index 6cce64c..0430f37 100644 --- a/src/helpers/userHelpers.js +++ b/src/helpers/userHelpers.js @@ -94,6 +94,31 @@ export async function removeConnectedGuestSides(guestSideSessionId) { } return { ok: false }; } +export const signUpUser = async (email, username, password) => { + try { + const response = await fetch(API_BASE_URL + `/user/signup`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ email, username, password }), + }); + console.log(username, password); + const responseData = await response.json(); + + if (response.ok) { + return { + success: true, + token: responseData.token, + }; + } else { + return { success: false, token: null }; + } + } catch (error) { + console.error("Error occurred while logging in:", error.message); + return { success: false, token: null }; + } +}; export const loginUser = async (username, password) => { try { diff --git a/src/pages/CafePage.js b/src/pages/CafePage.js index 04ff87d..c02a8d2 100644 --- a/src/pages/CafePage.js +++ b/src/pages/CafePage.js @@ -183,6 +183,8 @@ function CafePage({ isEditMode={isEditMode} onFilterChange={(e) => setFilterId(e)} filterId={filterId} + beingEditedType={beingEditedType} + setBeingEditedType={setBeingEditedType} />
{filterId === 0 ? ( diff --git a/src/pages/LoginPage.js b/src/pages/LoginPage.js index 7c2b977..8baf3c7 100644 --- a/src/pages/LoginPage.js +++ b/src/pages/LoginPage.js @@ -1,19 +1,25 @@ -import React from "react"; +import React, { useState } from "react"; import { useNavigate, useLocation } from "react-router-dom"; import "./LoginPage.css"; import RouletteWheel from "../components/RouletteWheel"; -import { loginUser } from "../helpers/userHelpers"; // Import from userHelper.js +import { loginUser, signUpUser } from "../helpers/userHelpers"; const LoginPage = () => { const navigate = useNavigate(); - const location = useLocation(); // Use useLocation hook instead of useSearchParams - const searchParams = new URLSearchParams(location.search); // Pass location.search directly - + const location = useLocation(); + const searchParams = new URLSearchParams(location.search); const next = searchParams.get("next"); const table = searchParams.get("table"); - const handleLogin = async (email, username, password) => { + const handleLogin = async ( + email, + username, + password, + setLoading, + setError + ) => { try { + setLoading(true); const response = await loginUser(username, password); if (response.success) { @@ -23,38 +29,60 @@ const LoginPage = () => { window.location.href = response.cafeId; } else { let destination = "/"; - - // Validate parameters and construct the destination URL if (table && !next) { - console.error( - 'Parameter "table" requires "next" to be present in the URL.', - ); - // Navigate to a default route or handle this case as needed + console.error('Parameter "table" requires "next" to be present.'); navigate("/"); return; } - if (next) { destination = `/${next}`; - if (table) { - destination += `?table=${table}`; - } + if (table) destination += `?table=${table}`; } - - // navigate(destination, { replace: true }); window.location.href = destination; } } else { + setError(true); // Trigger error state in the button console.error("Login failed"); } } catch (error) { + setError(true); console.error("Error occurred while logging in:", error.message); + } finally { + setLoading(false); // Ensure loading state is cleared + } + }; + const handleSignUp = async ( + email, + username, + password, + setLoading, + setError + ) => { + try { + setLoading(true); + const response = await signUpUser(email, username, password); + + if (response.success) { + localStorage.setItem("auth", response.token); + + let destination = "/"; + + window.location.href = destination; + } else { + setError(true); // Trigger error state in the button + console.error("Login failed"); + } + } catch (error) { + setError(true); + console.error("Error occurred while logging in:", error.message); + } finally { + setLoading(false); // Ensure loading state is cleared } }; return (
- +
); };