From 3e4b9df2501c1fddefb66f4b40e38e85241ceb23 Mon Sep 17 00:00:00 2001 From: Juan Carlo Vieri Date: Mon, 12 Aug 2024 22:14:50 +0800 Subject: [PATCH 01/16] fix login form and cca uiux. --- src/app/components/LoginForm.tsx | 2 +- src/app/dashboard/ccas/page.tsx | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/components/LoginForm.tsx b/src/app/components/LoginForm.tsx index db82e8f..79a2916 100644 --- a/src/app/components/LoginForm.tsx +++ b/src/app/components/LoginForm.tsx @@ -74,7 +74,7 @@ export default function LoginForm() { id="username" value={username} onChange={e => setUsername(e.target.value)} - placeholder="Please insert your room number" + placeholder="Please insert your matric number" className="appearance-none rounded-lg border-2 border-gray-100 px-4 py-3 text-black placeholder-gray-300 focus:shadow-lg focus:outline-none focus:ring-2 focus:ring-green-600" /> diff --git a/src/app/dashboard/ccas/page.tsx b/src/app/dashboard/ccas/page.tsx index 92a5720..6459626 100644 --- a/src/app/dashboard/ccas/page.tsx +++ b/src/app/dashboard/ccas/page.tsx @@ -229,6 +229,7 @@ const CCAComponent: React.FC = () => { return ( <> +

Please do not forget to press submit

CCA List

@@ -236,12 +237,13 @@ const CCAComponent: React.FC = () => { -
-

Contact Information

+
+ Contact Information + Required
setName(e.target.value)} placeholder="Name" /> - setEmail(e.target.value)} placeholder="Email" /> + setEmail(e.target.value)} placeholder="Email" /> setTelegramHandle(e.target.value)} @@ -303,7 +305,7 @@ const CCAComponent: React.FC = () => { ))} {isModalOpen && selectedActivity && ( - + Why do you want to join {selectedActivity.name}?
Date: Tue, 13 Aug 2024 13:05:42 +0800 Subject: [PATCH 02/16] Remove zone identifier. --- .gitignore | 2 ++ public/CCA booklet AY2425.pdf:Zone.Identifier | Bin 27 -> 0 bytes 2 files changed, 2 insertions(+) delete mode 100644 public/CCA booklet AY2425.pdf:Zone.Identifier diff --git a/.gitignore b/.gitignore index 45c1abc..4e330f2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +**/*:Zone.Identifier + # dependencies /node_modules /.pnp diff --git a/public/CCA booklet AY2425.pdf:Zone.Identifier b/public/CCA booklet AY2425.pdf:Zone.Identifier deleted file mode 100644 index be537eb44ca1e347e7a761c14b4f312c3e8c9543..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27 fcma!!%Fjy;DN4*MPD?F{<>dl#JyUFrdAS$>i985_ From 2b36d3bd4c5873cdf9a1bed9e3d295a3a844188e Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Tue, 13 Aug 2024 14:34:34 +0800 Subject: [PATCH 03/16] fixed layout issues --- src/app/dashboard/ccas/page.tsx | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/app/dashboard/ccas/page.tsx b/src/app/dashboard/ccas/page.tsx index 6459626..de50e06 100644 --- a/src/app/dashboard/ccas/page.tsx +++ b/src/app/dashboard/ccas/page.tsx @@ -55,6 +55,7 @@ const CCAComponent: React.FC = () => { const [activities, setActivities] = useState([]); const [signedUpCCAs, setCCAs] = useState([]); const [tempReason, setReason] = useState(""); + const [flagNewCCA, setFlag] = useState(false) const moveUp = (index: number, selectedActivity: CCA, setSelectedActivity: (_: CCA) => void) => { if (index === 0) return; @@ -178,6 +179,7 @@ const CCAComponent: React.FC = () => { title: "Submitted Successfully", }); window.removeEventListener("beforeunload", preventPropagation); + setFlag(false) } else { toast({ variant: "destructive", @@ -214,6 +216,7 @@ const CCAComponent: React.FC = () => { toast({ title: "Added Successfully", }); + setFlag(true) } setReason(""); setIsModalOpen(false); @@ -229,21 +232,21 @@ const CCAComponent: React.FC = () => { return ( <> -

Please do not forget to press submit

-
-

CCA List

- +
+

CCA Signup

+
+ {flagNewCCA && (

Please remember to press Submit

)} +
-
- Contact Information - Required +
+

Contact Information

setName(e.target.value)} placeholder="Name" /> - setEmail(e.target.value)} placeholder="Email" /> + setEmail(e.target.value)} placeholder="Email" /> setTelegramHandle(e.target.value)} @@ -252,12 +255,12 @@ const CCAComponent: React.FC = () => {
- + -
+

Signed-Up CCAs

-
+
{signedUpCCAs.map((obj, i) => (
+
{Object.entries(groupedActivities).map(([category, activities]) => ( From a387bb16e82bfd95bff30b6dc08aa5a558392c9e Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Thu, 15 Aug 2024 11:47:54 +0800 Subject: [PATCH 04/16] fixed icon --- src/app/dashboard/ccas/page.tsx | 105 +++++++++++++++++++------------- src/app/favicon.ico | Bin 25931 -> 263040 bytes 2 files changed, 61 insertions(+), 44 deletions(-) diff --git a/src/app/dashboard/ccas/page.tsx b/src/app/dashboard/ccas/page.tsx index de50e06..978fa3b 100644 --- a/src/app/dashboard/ccas/page.tsx +++ b/src/app/dashboard/ccas/page.tsx @@ -55,7 +55,11 @@ const CCAComponent: React.FC = () => { const [activities, setActivities] = useState([]); const [signedUpCCAs, setCCAs] = useState([]); const [tempReason, setReason] = useState(""); +<<<<<<< HEAD const [flagNewCCA, setFlag] = useState(false) +======= + const [flagNewCCA, setFlag] = useState(false); +>>>>>>> d4a158b933066b2c0a9efaccfc327c2f1ce21cee const moveUp = (index: number, selectedActivity: CCA, setSelectedActivity: (_: CCA) => void) => { if (index === 0) return; @@ -84,6 +88,7 @@ const CCAComponent: React.FC = () => { const preventPropagation = (e: Event) => e.preventDefault(); useEffect(() => { + setFlag(true); window.addEventListener("beforeunload", preventPropagation); return () => window.removeEventListener("beforeunload", preventPropagation); }, [email, name, signedUpCCAs, telegramHandle]); @@ -179,7 +184,11 @@ const CCAComponent: React.FC = () => { title: "Submitted Successfully", }); window.removeEventListener("beforeunload", preventPropagation); +<<<<<<< HEAD setFlag(false) +======= + setFlag(false); +>>>>>>> d4a158b933066b2c0a9efaccfc327c2f1ce21cee } else { toast({ variant: "destructive", @@ -232,55 +241,59 @@ const CCAComponent: React.FC = () => { return ( <> -
+

CCA Signup

- +
- {flagNewCCA && (

Please remember to press Submit

)} + {flagNewCCA && ( +

Please remember to press Submit

+ )}
- - -
-

Contact Information

-
-
- setName(e.target.value)} placeholder="Name" /> - setEmail(e.target.value)} placeholder="Email" /> - setTelegramHandle(e.target.value)} - placeholder="Telegram Handle" - /> -
-
-
- - -
-

Signed-Up CCAs

-
-
- {signedUpCCAs.map((obj, i) => ( -
- -
- + + +
+

Contact Information

+
+
+ setName(e.target.value)} placeholder="Name" /> + setEmail(e.target.value)} placeholder="Email" /> + setTelegramHandle(e.target.value)} + placeholder="Telegram Handle" + /> +
+
+
+ + +
+

Signed-Up CCAs

+
+
+ {signedUpCCAs.map((obj, i) => ( +
+ +
+ +
-
- ))} -
- - + ))} +
+ +
{Object.entries(groupedActivities).map(([category, activities]) => ( @@ -309,7 +322,11 @@ const CCAComponent: React.FC = () => { ))} {isModalOpen && selectedActivity && ( +<<<<<<< HEAD +======= + +>>>>>>> d4a158b933066b2c0a9efaccfc327c2f1ce21cee Why do you want to join {selectedActivity.name}?
-Q8V@yO0orB*Ya+a0u?M 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ν{i@Re2XL0#XE1lL)qE4n78{Lf@?0rYQY{DvFFB^ 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⪼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 LrJugUA?W`A8`#=m From 27366e3810b7a26e83d92a19ad14ca9dcc731bdc Mon Sep 17 00:00:00 2001 From: Aaron Date: Mon, 30 Sep 2024 21:48:08 +0800 Subject: [PATCH 05/16] Add all the query routes --- package-lock.json | 26 ++++- package.json | 1 + src/app/dashboard/jersey/page.tsx | 152 +++++++++++++++++++----------- src/app/dashboard/jersey/types.ts | 45 +++++++++ src/app/redux/provider.tsx | 9 +- 5 files changed, 178 insertions(+), 55 deletions(-) create mode 100644 src/app/dashboard/jersey/types.ts diff --git a/package-lock.json b/package-lock.json index cae869e..00c174f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@reduxjs/toolkit": "^1.9.6", + "@tanstack/react-query": "^5.56.2", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/node": "20.6.3", "@types/react": "18.2.22", @@ -1404,6 +1405,30 @@ "tslib": "^2.4.0" } }, + "node_modules/@tanstack/query-core": { + "version": "5.56.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.56.2.tgz", + "integrity": "sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.56.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.56.2.tgz", + "integrity": "sha512-SR0GzHVo6yzhN72pnRhkEFRAHMsUo5ZPzAxfTMvUxFIDVS6W9LYUp6nXW3fcHVdg0ZJl8opSH85jqahvm6DSVg==", + "dependencies": { + "@tanstack/query-core": "5.56.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, "node_modules/@trivago/prettier-plugin-sort-imports": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", @@ -4943,7 +4968,6 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/package.json b/package.json index e450ddb..11230b6 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@reduxjs/toolkit": "^1.9.6", + "@tanstack/react-query": "^5.56.2", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/node": "20.6.3", "@types/react": "18.2.22", diff --git a/src/app/dashboard/jersey/page.tsx b/src/app/dashboard/jersey/page.tsx index 52f2974..e27d1fc 100644 --- a/src/app/dashboard/jersey/page.tsx +++ b/src/app/dashboard/jersey/page.tsx @@ -1,62 +1,108 @@ "use client"; // This is a client component 👈🏽 -import React from "react"; +import React, { useEffect, useState } from "react"; import type { AlertColor } from "@mui/material"; +import { useQuery } from "@tanstack/react-query"; import axios from "axios"; +import { useRouter } from "next/navigation"; +import { useSelector } from "react-redux"; -export interface Bidding { - number: number; -} +import { selectUser } from "../../redux/Resources/userSlice"; -export interface Teams { - name: String; - shareable: boolean; -} +import { Bidding, JerseyType } from "./types"; export interface ToastMessage { message: String; severity: AlertColor; // Possible to create enum in the future } +// new types + // Create an instance of axios with credentials axios.defaults.withCredentials = true; // @TODO This component is temporarily disabled, please fix linting issues const Jersey: React.FC = () => { - // const user = useSelector(selectUser); - // const router = useRouter(); - - // const [isClient, setIsClient] = useState(false); - - // const userBiddings: Bidding[] = []; - - // // State to manage error toast throughout app - - // // State for the Snackbar component - // // Does a call for eligible bids. API still WIP - // const getEligibleBids = async () => { - // try { - // const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/eligible`); - - // if (response.data.success) { - // setAllowedBids(response.data.data.jerseys); - // console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); - // } - // } catch (error) { - // console.error("Error during getting allowed bids", error); - // } - // }; - - // // Does a call for user's teams + const user = useSelector(selectUser); + const router = useRouter(); + + const [isClient, setIsClient] = useState(false); + + // Does a call for all bids + const getBids = async () => { + try { + const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/list`); + + console.log("response", response.data.data); + + if (response.data.success) { + console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); + return response.data.data; + } + } catch (error) { + console.error("Error during getting allowed bids", error); + } + }; + + // Does a call for User's bidding info + const getUserBiddings = async () => { + try { + const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/info`); + + console.log("response", response.data.data); + + if (response.data.success) { + console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); + return response.data.data; + } + } catch (error) { + console.error("Error during getting user bids", error); + } + }; + + const { + data: bids, + status: bidsStatus, + refetch: refetchBids, + } = useQuery({ + queryKey: ["bids"], + queryFn: getBids, + }); + + const { + data: userBids, + status: userBidsStatus, + refetch: refetchUserBids, + } = useQuery({ + queryKey: ["user_bids"], + queryFn: getUserBiddings, + }); + + const { + data: userEligibleBids, + status: userEligibleBidsStatus, + refetch: refetchUserElligbleBids, + } = useQuery({ + queryKey: ["user_bids"], + queryFn: getUserBiddings, + }); + + console.log("userBids", userBids); + console.log("userEligible", userEligibleBids); + // State to manage error toast throughout app + + // State for the Snackbar component + + // Does a call for user's teams // const getUserTeam = async () => { // try { // const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/team/info`); // if (response.data.success) { - // setTeams(response.data.data.teams); + // // setTeams(response.data.data.teams); // console.log("This is user's team" + JSON.stringify(response.data.data.teams)); // } // } catch (error) { @@ -64,29 +110,29 @@ const Jersey: React.FC = () => { // } // }; - // // Saves changes to user_biddings in local storage + // Saves changes to user_biddings in local storage // useEffect(() => { // localStorage.setItem("user_biddings", JSON.stringify(biddings)); // }, [biddings]); - // useEffect(() => { - // setIsClient(true); // Indicate that client has been rendered - // getEligibleBids(); // Get all eligible bids when page renders - // getUserTeam(); // Get user's team when page renders - // }, []); - - // // If not authorized, then redirects the user - // useEffect(() => { - // if (user == null) { - // router.push("/"); - // } - // }, [user, router]); - - // return !isClient || user == null ? ( - // - // ) : ( - //
{/* Your content goes here */}
- // ); + useEffect(() => { + setIsClient(true); // Indicate that client has been rendered + // getEligibleBids(); // Get all eligible bids when page renders + // getUserTeam(); // Get user's team when page renders + }, []); + + // If not authorized, then redirects the user + useEffect(() => { + if (user == null) { + router.push("/"); + } + }, [user, router]); + + return !isClient || user == null ? ( + + ) : ( +
{/* Your content goes here */}
+ ); return ; }; diff --git a/src/app/dashboard/jersey/types.ts b/src/app/dashboard/jersey/types.ts new file mode 100644 index 0000000..4e83eb5 --- /dev/null +++ b/src/app/dashboard/jersey/types.ts @@ -0,0 +1,45 @@ +export interface UserInfo { + round: number; + points: number; + isAllocated: boolean; + jersey?: JerseyType; // Only present if isAllocated is true + teams: Team[]; +} + +export interface JerseyType { + number: number; + quota: Quota; +} + +export interface Quota { + male: number; + female: number; +} + +interface Team { + name: string; +} + +interface Bid { + jersey: JerseyType; + priority: number; +} + +interface System { + bidOpen: string; // Assuming it's a string (ISO date) + bidClose: string; // Assuming it's a string (ISO date) + bidRound: number; +} + +export interface UserBid { + info: UserInfo; + bids: Bid[]; + system: System; + canBid: boolean; +} + +export interface Bidding { + male: any[]; + female: any[]; + quota: Quota; +} diff --git a/src/app/redux/provider.tsx b/src/app/redux/provider.tsx index 456aeb4..4af455d 100644 --- a/src/app/redux/provider.tsx +++ b/src/app/redux/provider.tsx @@ -2,10 +2,17 @@ import React from "react"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { Provider } from "react-redux"; import { store } from "@/src/app/redux/store"; export function Providers({ children }: { children: React.ReactNode }) { - return {children}; + const queryClient = new QueryClient(); + + return ( + + {children}; + + ); } From e2085a1c974a337c4777a0c97ec046fe13724900 Mon Sep 17 00:00:00 2001 From: Aaron Date: Mon, 30 Sep 2024 22:05:34 +0800 Subject: [PATCH 06/16] Updating bidding form --- src/app/components/BiddingTable.tsx | 76 +++++++++++++++-------------- src/app/dashboard/jersey/page.tsx | 9 ++-- src/app/dashboard/jersey/types.ts | 4 ++ 3 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index 5f354f2..189cdbc 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -1,14 +1,15 @@ import React from "react"; -import type { Bidding } from "@/src/app/dashboard/jersey/page"; import type { ToastMessage } from "@/src/app/dashboard/jersey/page"; +import { BiddingData } from "../dashboard/jersey/types"; + interface BiddingList { - biddings: Bidding[]; - setBiddings: React.Dispatch>; - updateUser: () => void; - setToast: React.Dispatch>; - handleOpen: () => void; + biddings: BiddingData; + // setBiddings: React.Dispatch>; + // updateUser: () => void; + // setToast: React.Dispatch>; + // handleOpen: () => void; } const axios = require("axios"); @@ -16,33 +17,34 @@ const axiosWithCredentials = axios.create({ withCredentials: true, }); -const BiddingTable: React.FC = ({ biddings, setBiddings, updateUser, setToast, handleOpen }) => { - const deleteBid = (ind: number) => { - const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); - setBiddings(filteredList); - }; +// User submit bid form +const BiddingTable: React.FC = ({ biddings }) => { + // const deleteBid = (ind: number) => { + // const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); + // setBiddings(filteredList); + // }; // Currently unable to make the api call - const handleSubmit = async (e: React.MouseEvent) => { - e.preventDefault(); - try { - const response = await axiosWithCredentials.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/bid/create`, { - bids: biddings, - }); + // const handleSubmit = async (e: React.MouseEvent) => { + // e.preventDefault(); + // try { + // const response = await axiosWithCredentials.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/bid/create`, { + // bids: biddings, + // }); - if (response.data.success) { - setToast({ message: "Bids submitted", severity: "success" }); - handleOpen(); - updateUser(); - } else { - console.error("Bids failed"); - setToast({ message: "Bids failed to be submitted", severity: "error" }); - handleOpen(); - } - } catch (error) { - console.error("Error during form submission", error); - } - }; + // if (response.data.success) { + // setToast({ message: "Bids submitted", severity: "success" }); + // handleOpen(); + // updateUser(); + // } else { + // console.error("Bids failed"); + // setToast({ message: "Bids failed to be submitted", severity: "error" }); + // handleOpen(); + // } + // } catch (error) { + // console.error("Error during form submission", error); + // } + // }; return (
@@ -69,17 +71,17 @@ const BiddingTable: React.FC = ({ biddings, setBiddings, updateUser

Ensure you click submit to confirm changes

- {biddings.length == 0 ? ( + {/* {biddings.length == 0 ? ( <> ) : ( - )} + )} */}
@@ -93,14 +95,14 @@ const BiddingTable: React.FC = ({ biddings, setBiddings, updateUser - {biddings.map((bidding, index) => ( + {Object.entries(biddings).map(([jerseyNumber, bidding], index) => ( - - + + {/* */}
{index + 1}{bidding.number}{jerseyNumber}{bidding.number} diff --git a/src/app/dashboard/jersey/page.tsx b/src/app/dashboard/jersey/page.tsx index e27d1fc..1fc6fe7 100644 --- a/src/app/dashboard/jersey/page.tsx +++ b/src/app/dashboard/jersey/page.tsx @@ -9,9 +9,10 @@ import axios from "axios"; import { useRouter } from "next/navigation"; import { useSelector } from "react-redux"; +import BiddingTable from "../../components/BiddingTable"; import { selectUser } from "../../redux/Resources/userSlice"; -import { Bidding, JerseyType } from "./types"; +import { Bidding, BiddingData, JerseyType } from "./types"; export interface ToastMessage { message: String; @@ -67,7 +68,7 @@ const Jersey: React.FC = () => { data: bids, status: bidsStatus, refetch: refetchBids, - } = useQuery({ + } = useQuery({ queryKey: ["bids"], queryFn: getBids, }); @@ -131,7 +132,9 @@ const Jersey: React.FC = () => { return !isClient || user == null ? ( ) : ( -
{/* Your content goes here */}
+
+ {userBids === undefined ?
Loading
: } +
); return ; }; diff --git a/src/app/dashboard/jersey/types.ts b/src/app/dashboard/jersey/types.ts index 4e83eb5..7d3f7e1 100644 --- a/src/app/dashboard/jersey/types.ts +++ b/src/app/dashboard/jersey/types.ts @@ -43,3 +43,7 @@ export interface Bidding { female: any[]; quota: Quota; } + +export interface BiddingData { + [jerseyNumber: number]: Bidding; +} From 84e2913a574cc481bc2f79c3e7b960742582d27b Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Mon, 7 Oct 2024 09:53:01 +0800 Subject: [PATCH 07/16] oMerge https://github.com/eusoff-hackers/eusoff-frontend into fix/layout --- package-lock.json | 26 ++++- package.json | 1 + src/app/components/BiddingTable.tsx | 76 +++++++------- src/app/dashboard/ccas/page.tsx | 15 +-- src/app/dashboard/jersey/page.tsx | 155 ++++++++++++++++++---------- src/app/dashboard/jersey/types.ts | 49 +++++++++ src/app/redux/provider.tsx | 9 +- 7 files changed, 225 insertions(+), 106 deletions(-) create mode 100644 src/app/dashboard/jersey/types.ts diff --git a/package-lock.json b/package-lock.json index cae869e..00c174f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@reduxjs/toolkit": "^1.9.6", + "@tanstack/react-query": "^5.56.2", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/node": "20.6.3", "@types/react": "18.2.22", @@ -1404,6 +1405,30 @@ "tslib": "^2.4.0" } }, + "node_modules/@tanstack/query-core": { + "version": "5.56.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.56.2.tgz", + "integrity": "sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.56.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.56.2.tgz", + "integrity": "sha512-SR0GzHVo6yzhN72pnRhkEFRAHMsUo5ZPzAxfTMvUxFIDVS6W9LYUp6nXW3fcHVdg0ZJl8opSH85jqahvm6DSVg==", + "dependencies": { + "@tanstack/query-core": "5.56.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, "node_modules/@trivago/prettier-plugin-sort-imports": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", @@ -4943,7 +4968,6 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/package.json b/package.json index e450ddb..11230b6 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@reduxjs/toolkit": "^1.9.6", + "@tanstack/react-query": "^5.56.2", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/node": "20.6.3", "@types/react": "18.2.22", diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index 5f354f2..189cdbc 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -1,14 +1,15 @@ import React from "react"; -import type { Bidding } from "@/src/app/dashboard/jersey/page"; import type { ToastMessage } from "@/src/app/dashboard/jersey/page"; +import { BiddingData } from "../dashboard/jersey/types"; + interface BiddingList { - biddings: Bidding[]; - setBiddings: React.Dispatch>; - updateUser: () => void; - setToast: React.Dispatch>; - handleOpen: () => void; + biddings: BiddingData; + // setBiddings: React.Dispatch>; + // updateUser: () => void; + // setToast: React.Dispatch>; + // handleOpen: () => void; } const axios = require("axios"); @@ -16,33 +17,34 @@ const axiosWithCredentials = axios.create({ withCredentials: true, }); -const BiddingTable: React.FC = ({ biddings, setBiddings, updateUser, setToast, handleOpen }) => { - const deleteBid = (ind: number) => { - const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); - setBiddings(filteredList); - }; +// User submit bid form +const BiddingTable: React.FC = ({ biddings }) => { + // const deleteBid = (ind: number) => { + // const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); + // setBiddings(filteredList); + // }; // Currently unable to make the api call - const handleSubmit = async (e: React.MouseEvent) => { - e.preventDefault(); - try { - const response = await axiosWithCredentials.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/bid/create`, { - bids: biddings, - }); + // const handleSubmit = async (e: React.MouseEvent) => { + // e.preventDefault(); + // try { + // const response = await axiosWithCredentials.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/bid/create`, { + // bids: biddings, + // }); - if (response.data.success) { - setToast({ message: "Bids submitted", severity: "success" }); - handleOpen(); - updateUser(); - } else { - console.error("Bids failed"); - setToast({ message: "Bids failed to be submitted", severity: "error" }); - handleOpen(); - } - } catch (error) { - console.error("Error during form submission", error); - } - }; + // if (response.data.success) { + // setToast({ message: "Bids submitted", severity: "success" }); + // handleOpen(); + // updateUser(); + // } else { + // console.error("Bids failed"); + // setToast({ message: "Bids failed to be submitted", severity: "error" }); + // handleOpen(); + // } + // } catch (error) { + // console.error("Error during form submission", error); + // } + // }; return (
@@ -69,17 +71,17 @@ const BiddingTable: React.FC = ({ biddings, setBiddings, updateUser

Ensure you click submit to confirm changes

- {biddings.length == 0 ? ( + {/* {biddings.length == 0 ? ( <> ) : ( - )} + )} */} @@ -93,14 +95,14 @@ const BiddingTable: React.FC = ({ biddings, setBiddings, updateUser - {biddings.map((bidding, index) => ( + {Object.entries(biddings).map(([jerseyNumber, bidding], index) => ( - - + + {/* */}
{index + 1}{bidding.number}{jerseyNumber}{bidding.number} diff --git a/src/app/dashboard/ccas/page.tsx b/src/app/dashboard/ccas/page.tsx index 978fa3b..cd1c4f3 100644 --- a/src/app/dashboard/ccas/page.tsx +++ b/src/app/dashboard/ccas/page.tsx @@ -55,11 +55,7 @@ const CCAComponent: React.FC = () => { const [activities, setActivities] = useState([]); const [signedUpCCAs, setCCAs] = useState([]); const [tempReason, setReason] = useState(""); -<<<<<<< HEAD - const [flagNewCCA, setFlag] = useState(false) -======= const [flagNewCCA, setFlag] = useState(false); ->>>>>>> d4a158b933066b2c0a9efaccfc327c2f1ce21cee const moveUp = (index: number, selectedActivity: CCA, setSelectedActivity: (_: CCA) => void) => { if (index === 0) return; @@ -184,11 +180,6 @@ const CCAComponent: React.FC = () => { title: "Submitted Successfully", }); window.removeEventListener("beforeunload", preventPropagation); -<<<<<<< HEAD - setFlag(false) -======= - setFlag(false); ->>>>>>> d4a158b933066b2c0a9efaccfc327c2f1ce21cee } else { toast({ variant: "destructive", @@ -322,11 +313,7 @@ const CCAComponent: React.FC = () => { ))} {isModalOpen && selectedActivity && ( -<<<<<<< HEAD - -======= - ->>>>>>> d4a158b933066b2c0a9efaccfc327c2f1ce21cee + Why do you want to join {selectedActivity.name}?
{ - // const user = useSelector(selectUser); - // const router = useRouter(); - - // const [isClient, setIsClient] = useState(false); - - // const userBiddings: Bidding[] = []; - - // // State to manage error toast throughout app - - // // State for the Snackbar component - // // Does a call for eligible bids. API still WIP - // const getEligibleBids = async () => { - // try { - // const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/eligible`); - - // if (response.data.success) { - // setAllowedBids(response.data.data.jerseys); - // console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); - // } - // } catch (error) { - // console.error("Error during getting allowed bids", error); - // } - // }; - - // // Does a call for user's teams + const user = useSelector(selectUser); + const router = useRouter(); + + const [isClient, setIsClient] = useState(false); + + // Does a call for all bids + const getBids = async () => { + try { + const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/list`); + + console.log("response", response.data.data); + + if (response.data.success) { + console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); + return response.data.data; + } + } catch (error) { + console.error("Error during getting allowed bids", error); + } + }; + + // Does a call for User's bidding info + const getUserBiddings = async () => { + try { + const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/info`); + + console.log("response", response.data.data); + + if (response.data.success) { + console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); + return response.data.data; + } + } catch (error) { + console.error("Error during getting user bids", error); + } + }; + + const { + data: bids, + status: bidsStatus, + refetch: refetchBids, + } = useQuery({ + queryKey: ["bids"], + queryFn: getBids, + }); + + const { + data: userBids, + status: userBidsStatus, + refetch: refetchUserBids, + } = useQuery({ + queryKey: ["user_bids"], + queryFn: getUserBiddings, + }); + + const { + data: userEligibleBids, + status: userEligibleBidsStatus, + refetch: refetchUserElligbleBids, + } = useQuery({ + queryKey: ["user_bids"], + queryFn: getUserBiddings, + }); + + console.log("userBids", userBids); + console.log("userEligible", userEligibleBids); + // State to manage error toast throughout app + + // State for the Snackbar component + + // Does a call for user's teams // const getUserTeam = async () => { // try { // const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_URL}/team/info`); // if (response.data.success) { - // setTeams(response.data.data.teams); + // // setTeams(response.data.data.teams); // console.log("This is user's team" + JSON.stringify(response.data.data.teams)); // } // } catch (error) { @@ -64,29 +111,31 @@ const Jersey: React.FC = () => { // } // }; - // // Saves changes to user_biddings in local storage + // Saves changes to user_biddings in local storage // useEffect(() => { // localStorage.setItem("user_biddings", JSON.stringify(biddings)); // }, [biddings]); - // useEffect(() => { - // setIsClient(true); // Indicate that client has been rendered - // getEligibleBids(); // Get all eligible bids when page renders - // getUserTeam(); // Get user's team when page renders - // }, []); - - // // If not authorized, then redirects the user - // useEffect(() => { - // if (user == null) { - // router.push("/"); - // } - // }, [user, router]); - - // return !isClient || user == null ? ( - // - // ) : ( - //
{/* Your content goes here */}
- // ); + useEffect(() => { + setIsClient(true); // Indicate that client has been rendered + // getEligibleBids(); // Get all eligible bids when page renders + // getUserTeam(); // Get user's team when page renders + }, []); + + // If not authorized, then redirects the user + useEffect(() => { + if (user == null) { + router.push("/"); + } + }, [user, router]); + + return !isClient || user == null ? ( + + ) : ( +
+ {userBids === undefined ?
Loading
: } +
+ ); return ; }; diff --git a/src/app/dashboard/jersey/types.ts b/src/app/dashboard/jersey/types.ts new file mode 100644 index 0000000..7d3f7e1 --- /dev/null +++ b/src/app/dashboard/jersey/types.ts @@ -0,0 +1,49 @@ +export interface UserInfo { + round: number; + points: number; + isAllocated: boolean; + jersey?: JerseyType; // Only present if isAllocated is true + teams: Team[]; +} + +export interface JerseyType { + number: number; + quota: Quota; +} + +export interface Quota { + male: number; + female: number; +} + +interface Team { + name: string; +} + +interface Bid { + jersey: JerseyType; + priority: number; +} + +interface System { + bidOpen: string; // Assuming it's a string (ISO date) + bidClose: string; // Assuming it's a string (ISO date) + bidRound: number; +} + +export interface UserBid { + info: UserInfo; + bids: Bid[]; + system: System; + canBid: boolean; +} + +export interface Bidding { + male: any[]; + female: any[]; + quota: Quota; +} + +export interface BiddingData { + [jerseyNumber: number]: Bidding; +} diff --git a/src/app/redux/provider.tsx b/src/app/redux/provider.tsx index 456aeb4..4af455d 100644 --- a/src/app/redux/provider.tsx +++ b/src/app/redux/provider.tsx @@ -2,10 +2,17 @@ import React from "react"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { Provider } from "react-redux"; import { store } from "@/src/app/redux/store"; export function Providers({ children }: { children: React.ReactNode }) { - return {children}; + const queryClient = new QueryClient(); + + return ( + + {children}; + + ); } From b7879f6e628d80b49bbd1fcab7838f8c871be573 Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Wed, 9 Oct 2024 02:35:47 +0800 Subject: [PATCH 08/16] added skeleton for bidding table --- components/ui/label.tsx | 26 +++++++ components/ui/table.tsx | 117 ++++++++++++++++++++++++++++ package-lock.json | 40 ++++++++-- package.json | 3 +- src/app/components/BiddingTable.tsx | 97 ++++++++++++++++++++++- src/app/dashboard/jersey/page.tsx | 7 +- 6 files changed, 275 insertions(+), 15 deletions(-) create mode 100644 components/ui/label.tsx create mode 100644 components/ui/table.tsx diff --git a/components/ui/label.tsx b/components/ui/label.tsx new file mode 100644 index 0000000..5341821 --- /dev/null +++ b/components/ui/label.tsx @@ -0,0 +1,26 @@ +"use client" + +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/components/ui/table.tsx b/components/ui/table.tsx new file mode 100644 index 0000000..7f3502f --- /dev/null +++ b/components/ui/table.tsx @@ -0,0 +1,117 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Table = React.forwardRef< + HTMLTableElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+ + +)) +Table.displayName = "Table" + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableHeader.displayName = "TableHeader" + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableBody.displayName = "TableBody" + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + tr]:last:border-b-0", + className + )} + {...props} + /> +)) +TableFooter.displayName = "TableFooter" + +const TableRow = React.forwardRef< + HTMLTableRowElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableRow.displayName = "TableRow" + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +TableHead.displayName = "TableHead" + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableCell.displayName = "TableCell" + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +TableCaption.displayName = "TableCaption" + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +} diff --git a/package-lock.json b/package-lock.json index 00c174f..46af14f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,10 +13,11 @@ "@emotion/styled": "^11.11.0", "@mui/material": "^5.16.4", "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@reduxjs/toolkit": "^1.9.6", - "@tanstack/react-query": "^5.56.2", + "@tanstack/react-query": "^5.59.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/node": "20.6.3", "@types/react": "18.2.22", @@ -1167,6 +1168,28 @@ } } }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz", + "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-portal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", @@ -1406,20 +1429,20 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.56.2", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.56.2.tgz", - "integrity": "sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.59.0.tgz", + "integrity": "sha512-WGD8uIhX6/deH/tkZqPNcRyAhDUqs729bWKoByYHSogcshXfFbppOdTER5+qY7mFvu8KEFJwT0nxr8RfPTVh0Q==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "5.56.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.56.2.tgz", - "integrity": "sha512-SR0GzHVo6yzhN72pnRhkEFRAHMsUo5ZPzAxfTMvUxFIDVS6W9LYUp6nXW3fcHVdg0ZJl8opSH85jqahvm6DSVg==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.59.0.tgz", + "integrity": "sha512-YDXp3OORbYR+8HNQx+lf4F73NoiCmCcSvZvgxE29OifmQFk0sBlO26NWLHpcNERo92tVk3w+JQ53/vkcRUY1hA==", "dependencies": { - "@tanstack/query-core": "5.56.2" + "@tanstack/query-core": "5.59.0" }, "funding": { "type": "github", @@ -4968,6 +4991,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/package.json b/package.json index 11230b6..31ee874 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,11 @@ "@emotion/styled": "^11.11.0", "@mui/material": "^5.16.4", "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@reduxjs/toolkit": "^1.9.6", - "@tanstack/react-query": "^5.56.2", + "@tanstack/react-query": "^5.59.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/node": "20.6.3", "@types/react": "18.2.22", diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index 189cdbc..dd33438 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -1,6 +1,25 @@ import React from "react"; import type { ToastMessage } from "@/src/app/dashboard/jersey/page"; +import { useEffect, useState } from "react"; +import { Button } from "@/components/ui/button" +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogFooter, +} from "@/components/ui/dialog" +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table" +import { Input } from "@/components/ui/input" +import { Label } from "@/components/ui/label" import { BiddingData } from "../dashboard/jersey/types"; @@ -19,6 +38,28 @@ const axiosWithCredentials = axios.create({ // User submit bid form const BiddingTable: React.FC = ({ biddings }) => { + + + const [open, setOpen] = useState(false) + const [selectedNumber, setSelectedNumber] = useState(null) + const [bids, setBids] = useState({}) + const [newBid, setNewBid] = useState('') + + const handleOpenModal = (number: number) => { + setOpen(true) + } + + const handlePlaceBid = () => { + if (selectedNumber && newBid ) { + const updatedBids = { ...bids } + if (!updatedBids[selectedNumber]) { + updatedBids[selectedNumber] = [] + } + setBids(updatedBids) + setNewBid('') + } + } + // const deleteBid = (ind: number) => { // const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); // setBiddings(filteredList); @@ -47,7 +88,7 @@ const BiddingTable: React.FC = ({ biddings }) => { // }; return ( -
+ /*

Submit new bids:

@@ -81,7 +122,7 @@ const BiddingTable: React.FC = ({ biddings }) => { > Submit - )} */} + )} }
@@ -98,7 +139,7 @@ const BiddingTable: React.FC = ({ biddings }) => { {Object.entries(biddings).map(([jerseyNumber, bidding], index) => ( - {/* */} + {/* }
{jerseyNumber}{bidding.number}{bidding.number}
+
*/ +
+

Bidding Table

+
+ {Array.from({ length: 100 }, (_, i) => i + 1).map((number) => ( + + ))}
+ + + + + Bids for Number {selectedNumber} + +
+ + + + Room Number + User + + + + {selectedNumber && bids[selectedNumber] && bids[selectedNumber].map((bid, index) => ( + + {bid.user} + ${bid.amount.toFixed(2)} + + ))} + {(!selectedNumber || !bids[selectedNumber] || bids[selectedNumber].length === 0) && ( + + No bids yet + + )} + +
+
+ + + +
+
+ +
); }; diff --git a/src/app/dashboard/jersey/page.tsx b/src/app/dashboard/jersey/page.tsx index 1fc6fe7..fc7cf40 100644 --- a/src/app/dashboard/jersey/page.tsx +++ b/src/app/dashboard/jersey/page.tsx @@ -40,7 +40,7 @@ const Jersey: React.FC = () => { console.log("response", response.data.data); if (response.data.success) { - console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); + console.log("This is eligible bids" + JSON.stringify(response.data.data)); return response.data.data; } } catch (error) { @@ -56,7 +56,7 @@ const Jersey: React.FC = () => { console.log("response", response.data.data); if (response.data.success) { - console.log("This is eligible bids" + JSON.stringify(response.data.data.jerseys)); + console.log("This is eligible bids" + JSON.stringify(response.data.data)); return response.data.data; } } catch (error) { @@ -91,6 +91,7 @@ const Jersey: React.FC = () => { queryFn: getUserBiddings, }); + console.log('bids',bids); console.log("userBids", userBids); console.log("userEligible", userEligibleBids); // State to manage error toast throughout app @@ -133,7 +134,7 @@ const Jersey: React.FC = () => { ) : (
- {userBids === undefined ?
Loading
: } + {userBids === undefined ?
Loading
: }
); return ; From 90da65d6127141b29e8392dc860ed55fd9be5e87 Mon Sep 17 00:00:00 2001 From: Aaron Date: Sun, 13 Oct 2024 10:49:14 +0800 Subject: [PATCH 09/16] Add logic for rendering --- package-lock.json | 23 ++- package.json | 1 + src/app/components/BiddingTable.tsx | 239 +++++++++++++++++----------- src/app/dashboard/jersey/page.tsx | 18 ++- 4 files changed, 181 insertions(+), 100 deletions(-) diff --git a/package-lock.json b/package-lock.json index 46af14f..28db831 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,6 +44,7 @@ "typescript": "5.2.2" }, "devDependencies": { + "@iconify/react": "^5.0.2", "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^6.4.0", @@ -550,6 +551,27 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" }, + "node_modules/@iconify/react": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-5.0.2.tgz", + "integrity": "sha512-wtmstbYlEbo4NDxFxBJkhkf9gJBDqMGr7FaqLrAUMneRV3Z+fVHLJjOhWbkAF8xDQNFC/wcTYdrWo1lnRhmagQ==", + "dev": true, + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "react": ">=16" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -4991,7 +5013,6 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/package.json b/package.json index 31ee874..bbf9a3b 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "typescript": "5.2.2" }, "devDependencies": { + "@iconify/react": "^5.0.2", "@typescript-eslint/eslint-plugin": "^6.21.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^6.4.0", diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index dd33438..8b15a39 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -1,29 +1,22 @@ import React from "react"; +import { useEffect, useState } from "react"; + +import { Button } from "@/components/ui/button"; +import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; +import { Icon } from "@iconify/react"; +import { QueryObserverResult } from "@tanstack/react-query"; +import axios from "axios"; import type { ToastMessage } from "@/src/app/dashboard/jersey/page"; -import { useEffect, useState } from "react"; -import { Button } from "@/components/ui/button" -import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, - DialogFooter, -} from "@/components/ui/dialog" -import { - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from "@/components/ui/table" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" - -import { BiddingData } from "../dashboard/jersey/types"; + +import { BiddingData, UserBid } from "../dashboard/jersey/types"; interface BiddingList { + userBids: UserBid; + refetchUserBids: () => Promise>; biddings: BiddingData; // setBiddings: React.Dispatch>; // updateUser: () => void; @@ -31,34 +24,60 @@ interface BiddingList { // handleOpen: () => void; } -const axios = require("axios"); -const axiosWithCredentials = axios.create({ - withCredentials: true, -}); +axios.defaults.withCredentials = true; // User submit bid form -const BiddingTable: React.FC = ({ biddings }) => { - +const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddings }) => { + const [open, setOpen] = useState(false); + const [selectedNumber, setSelectedNumber] = useState(null); + const priority = userBids ? userBids.bids.length : 0; - const [open, setOpen] = useState(false) - const [selectedNumber, setSelectedNumber] = useState(null) - const [bids, setBids] = useState({}) - const [newBid, setNewBid] = useState('') + const curr_userBids = userBids.bids.map(bid => { + return { + number: bid.jersey.number, + priority: bid.priority, + }; + }); const handleOpenModal = (number: number) => { - setOpen(true) - } - - const handlePlaceBid = () => { - if (selectedNumber && newBid ) { - const updatedBids = { ...bids } - if (!updatedBids[selectedNumber]) { - updatedBids[selectedNumber] = [] + setOpen(true); + setSelectedNumber(number); + }; + const handlePlaceBid = async (number: number, priority: number) => { + try { + const newBids = { + bids: [ + ...curr_userBids, + { + number, + priority, + }, + ], + }; + const resp = await axios.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/bid`, newBids); + + if (resp.status === 200) { + refetchUserBids(); + } + } catch (err) { + console.log(err); + } + }; + + const handleDeleteBid = async (number: number) => { + try { + const newBids = curr_userBids.filter(bid => bid.number !== number); + const resp = await axios.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/bid`, { + bids: newBids, + }); + + if (resp.status == 200) { + refetchUserBids(); } - setBids(updatedBids) - setNewBid('') + } catch (err) { + console.log(err); } - } + }; // const deleteBid = (ind: number) => { // const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); @@ -70,16 +89,16 @@ const BiddingTable: React.FC = ({ biddings }) => { // e.preventDefault(); // try { // const response = await axiosWithCredentials.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/bid/create`, { - // bids: biddings, + // biddings: biddings, // }); // if (response.data.success) { - // setToast({ message: "Bids submitted", severity: "success" }); + // setToast({ message: "biddings submitted", severity: "success" }); // handleOpen(); // updateUser(); // } else { - // console.error("Bids failed"); - // setToast({ message: "Bids failed to be submitted", severity: "error" }); + // console.error("biddings failed"); + // setToast({ message: "biddings failed to be submitted", severity: "error" }); // handleOpen(); // } // } catch (error) { @@ -90,7 +109,7 @@ const BiddingTable: React.FC = ({ biddings }) => { return ( /*
-

Submit new bids:

+

Submit new biddings:

= ({ biddings }) => {
*/
-

Bidding Table

-
- {Array.from({ length: 100 }, (_, i) => i + 1).map((number) => ( - - ))} -
+

Bidding Table

+ {userBids !== undefined && ( +
+
My bids
+ {userBids.bids.map((bid, ind) => ( +
+
Bidding Number: {bid.jersey.number}
+
+ Priority: {bid.priority + 1} - - - - Bids for Number {selectedNumber} - -
- - - - Room Number - User - - - - {selectedNumber && bids[selectedNumber] && bids[selectedNumber].map((bid, index) => ( - - {bid.user} - ${bid.amount.toFixed(2)} - - ))} - {(!selectedNumber || !bids[selectedNumber] || bids[selectedNumber].length === 0) && ( + handleDeleteBid(bid.jersey.number)} + /> + + + ))} + + )} +
+ {Array.from({ length: 100 }, (_, i) => i + 1).map(number => ( + + ))} +
+ + + + + biddings for Number {selectedNumber} + + {selectedNumber && biddings && biddings[selectedNumber] && ( +
+
Quota M: {biddings[selectedNumber].quota.male}
+
Quota F: {biddings[selectedNumber].quota.female}
+
+ )} +
+
+ - No bids yet + Room Number + User - )} - -
-
- - - -
-
+ + + {selectedNumber && + biddings[selectedNumber] && + biddings[selectedNumber].male.map((bid, index) => ( + + {bid.user} (M) + ${bid.amount.toFixed(2)} + + ))} + {selectedNumber && + biddings[selectedNumber] && + biddings[selectedNumber].female.map((bid, index) => { + return ( + + {bid.user.room} (F) + {bid.points} + + ); + })} -
+ {/* {(!selectedNumber || !biddings[selectedNumber] || bids[selectedNumber].length === 0) && ( + + + No biddings yet + + + )} */} + +
+ + + + + + + ); }; diff --git a/src/app/dashboard/jersey/page.tsx b/src/app/dashboard/jersey/page.tsx index fc7cf40..9ed5642 100644 --- a/src/app/dashboard/jersey/page.tsx +++ b/src/app/dashboard/jersey/page.tsx @@ -12,7 +12,7 @@ import { useSelector } from "react-redux"; import BiddingTable from "../../components/BiddingTable"; import { selectUser } from "../../redux/Resources/userSlice"; -import { Bidding, BiddingData, JerseyType } from "./types"; +import { Bidding, BiddingData, JerseyType, UserBid } from "./types"; export interface ToastMessage { message: String; @@ -40,7 +40,7 @@ const Jersey: React.FC = () => { console.log("response", response.data.data); if (response.data.success) { - console.log("This is eligible bids" + JSON.stringify(response.data.data)); + // console.log("This is eligible bids" + JSON.stringify(response.data.data)); return response.data.data; } } catch (error) { @@ -77,7 +77,7 @@ const Jersey: React.FC = () => { data: userBids, status: userBidsStatus, refetch: refetchUserBids, - } = useQuery({ + } = useQuery({ queryKey: ["user_bids"], queryFn: getUserBiddings, }); @@ -91,9 +91,9 @@ const Jersey: React.FC = () => { queryFn: getUserBiddings, }); - console.log('bids',bids); - console.log("userBids", userBids); - console.log("userEligible", userEligibleBids); + // console.log('bids',bids); + // console.log("userBids", userBids); + // console.log("userEligible", userEligibleBids); // State to manage error toast throughout app // State for the Snackbar component @@ -134,7 +134,11 @@ const Jersey: React.FC = () => { ) : (
- {userBids === undefined ?
Loading
: } + {userBids === undefined ? ( +
Loading
+ ) : ( + + )}
); return ; From 35ffc34ef39ecd4bfd8f9d1b5d3c18430b7e2aee Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Sun, 13 Oct 2024 20:30:27 +0800 Subject: [PATCH 10/16] modified a lot of code --- package-lock.json | 1 + src/app/components/BiddingTable.tsx | 107 +++++++++++++++++++++------- src/app/components/NavBar.tsx | 4 +- src/app/dashboard/jersey/page.tsx | 8 +-- 4 files changed, 86 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 28db831..951edbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5013,6 +5013,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index 8b15a39..90d2390 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -1,10 +1,12 @@ import React from "react"; import { useEffect, useState } from "react"; +import { ArrowDown, ArrowUp, ArrowUpDown, Trash2 } from "lucide-react" import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { Icon } from "@iconify/react"; import { QueryObserverResult } from "@tanstack/react-query"; @@ -18,6 +20,7 @@ interface BiddingList { userBids: UserBid; refetchUserBids: () => Promise>; biddings: BiddingData; + userEligibleBids: any; // setBiddings: React.Dispatch>; // updateUser: () => void; // setToast: React.Dispatch>; @@ -27,7 +30,7 @@ interface BiddingList { axios.defaults.withCredentials = true; // User submit bid form -const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddings }) => { +const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddings, userEligibleBids }) => { const [open, setOpen] = useState(false); const [selectedNumber, setSelectedNumber] = useState(null); const priority = userBids ? userBids.bids.length : 0; @@ -58,6 +61,7 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin if (resp.status === 200) { refetchUserBids(); + setBids(userBids); } } catch (err) { console.log(err); @@ -79,6 +83,12 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin } }; + const getEligibleNumbers = () => { + return userEligibleBids.bids.map((bid) => bid.jersey.number); + } + + const eligibleNumbers = getEligibleNumbers() + // const deleteBid = (ind: number) => { // const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); // setBiddings(filteredList); @@ -171,43 +181,86 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin ))}
+
*/

Bidding Table

- {userBids !== undefined && ( -
-
My bids
- {userBids.bids.map((bid, ind) => ( -
-
Bidding Number: {bid.jersey.number}
-
- Priority: {bid.priority + 1} - handleDeleteBid(bid.jersey.number)} - /> -
-
- ))} + {userBids && ( + + Your Bids + View and manage your current bids + + +
+ + + + Bidding Number + Priority + Actions + + + + {userBids.bids.map((bid, index) => ( + + {bid.jersey.number} + {bid.priority + 1} + +
+ +
+
+
+ ))} +
+
- )} -
- {Array.from({ length: 100 }, (_, i) => i + 1).map(number => ( - - ))} -
+
+ +
+
+
+ )} + +

Eligible Bidding Numbers :

+ +
+ {Array.from({ length: 100 }, (_, i) => i + 1).map(number => { + + const isEligible = eligibleNumbers.includes(number); // Check if the number is eligible + return ( + + ); + })} +
- biddings for Number {selectedNumber} + Biddings for Number {selectedNumber} {selectedNumber && biddings && biddings[selectedNumber] && ( -
+
Quota M: {biddings[selectedNumber].quota.male}
Quota F: {biddings[selectedNumber].quota.female}
diff --git a/src/app/components/NavBar.tsx b/src/app/components/NavBar.tsx index a81a13e..f31ce41 100644 --- a/src/app/components/NavBar.tsx +++ b/src/app/components/NavBar.tsx @@ -80,7 +80,7 @@ export default function NavBar() {
  • - + - CCA Signup + Jersey Bidding
  • diff --git a/src/app/dashboard/jersey/page.tsx b/src/app/dashboard/jersey/page.tsx index 9ed5642..3b62bd8 100644 --- a/src/app/dashboard/jersey/page.tsx +++ b/src/app/dashboard/jersey/page.tsx @@ -8,7 +8,7 @@ import { useQuery } from "@tanstack/react-query"; import axios from "axios"; import { useRouter } from "next/navigation"; import { useSelector } from "react-redux"; - +import Loading from "../../components/Loading" import BiddingTable from "../../components/BiddingTable"; import { selectUser } from "../../redux/Resources/userSlice"; @@ -135,15 +135,13 @@ const Jersey: React.FC = () => { ) : (
    {userBids === undefined ? ( -
    Loading
    + ) : ( - + )}
    ); return ; }; -const Loading = () =>
    Loading...
    ; - export default Jersey; From 2967f70ba73ccd01a82579b4731d379c24f44479 Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Sun, 13 Oct 2024 20:44:25 +0800 Subject: [PATCH 11/16] displaying user info --- components/ui/badge.tsx | 36 +++++++++++++++++++++++++++++ src/app/components/BiddingTable.tsx | 21 +++++++++++++++-- src/app/dashboard/jersey/page.tsx | 2 +- 3 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 components/ui/badge.tsx diff --git a/components/ui/badge.tsx b/components/ui/badge.tsx new file mode 100644 index 0000000..f000e3e --- /dev/null +++ b/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
    + ) +} + +export { Badge, badgeVariants } diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index 90d2390..bdc28ea 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -1,7 +1,6 @@ import React from "react"; import { useEffect, useState } from "react"; -import { ArrowDown, ArrowUp, ArrowUpDown, Trash2 } from "lucide-react" - +import {Trash2 } from "lucide-react" import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; @@ -11,6 +10,7 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@ import { Icon } from "@iconify/react"; import { QueryObserverResult } from "@tanstack/react-query"; import axios from "axios"; +import { Badge } from "@/components/ui/badge" import type { ToastMessage } from "@/src/app/dashboard/jersey/page"; @@ -196,6 +196,23 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin
    +
    +
    +

    Points:

    +

    {userBids.info.points.toLocaleString()}

    +
    +
    +

    Teams :

    +
    + {userBids.info.teams.map((team) => ( + + {team.team.name} + + ))} +
    +
    +

    Bids :

    +
    diff --git a/src/app/dashboard/jersey/page.tsx b/src/app/dashboard/jersey/page.tsx index 3b62bd8..7e28b8e 100644 --- a/src/app/dashboard/jersey/page.tsx +++ b/src/app/dashboard/jersey/page.tsx @@ -92,7 +92,7 @@ const Jersey: React.FC = () => { }); // console.log('bids',bids); - // console.log("userBids", userBids); + console.log("userBids", userBids); // console.log("userEligible", userEligibleBids); // State to manage error toast throughout app From e548db2c658a7778c88e16b581a430354046c294 Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Sun, 13 Oct 2024 20:49:19 +0800 Subject: [PATCH 12/16] added more design changes --- src/app/components/BiddingTable.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index bdc28ea..b555fb2 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -276,6 +276,7 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin Biddings for Number {selectedNumber} +

    Your Points : {userBids.info.points}

    {selectedNumber && biddings && biddings[selectedNumber] && (
    Quota M: {biddings[selectedNumber].quota.male}
    @@ -320,8 +321,8 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin
    - - From a36b071f1871c7cc08ad0869ad3f561165ed6983 Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Mon, 14 Oct 2024 10:46:43 +0800 Subject: [PATCH 13/16] fixed eligible biddings --- src/app/components/BiddingTable.tsx | 12 ++++-------- src/app/dashboard/jersey/page.tsx | 28 ++++++++++++++++++++++------ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index b555fb2..812cfe4 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -20,7 +20,7 @@ interface BiddingList { userBids: UserBid; refetchUserBids: () => Promise>; biddings: BiddingData; - userEligibleBids: any; + userEligibleBids: JerseyType[]; // setBiddings: React.Dispatch>; // updateUser: () => void; // setToast: React.Dispatch>; @@ -83,11 +83,7 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin } }; - const getEligibleNumbers = () => { - return userEligibleBids.bids.map((bid) => bid.jersey.number); - } - - const eligibleNumbers = getEligibleNumbers() + console.log(userEligibleBids) // const deleteBid = (ind: number) => { // const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); @@ -254,9 +250,9 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin

    Eligible Bidding Numbers :

    - {Array.from({ length: 100 }, (_, i) => i + 1).map(number => { + {Array.from({ length: 99 }, (_, i) => i + 1).map(number => { - const isEligible = eligibleNumbers.includes(number); // Check if the number is eligible + const isEligible = userEligibleBids.jerseys.includes(number); // Check if the number is eligible return (
    ); return ; From 7f3578d8ac072f0848a68b5764c59471af6690fa Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Mon, 14 Oct 2024 11:11:53 +0800 Subject: [PATCH 14/16] more changes --- src/app/components/BiddingTable.tsx | 65 +---------------------------- src/app/components/NavBar.tsx | 41 +++++------------- src/app/dashboard/jersey/page.tsx | 46 +------------------- 3 files changed, 13 insertions(+), 139 deletions(-) diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index 4c4006e..0bd1293 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -30,68 +30,6 @@ interface BiddingList { axios.defaults.withCredentials = true; -// User submit bid form -const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddings, userEligibleBids }) => { - const [open, setOpen] = useState(false); - const [selectedNumber, setSelectedNumber] = useState(null); - const priority = userBids ? userBids.bids.length : 0; - - const curr_userBids = userBids.bids.map(bid => { - return { - number: bid.jersey.number, - priority: bid.priority, - }; - }); - - const handleOpenModal = (number: number) => { - setOpen(true); - setSelectedNumber(number); - }; - const handlePlaceBid = async (number: number, priority: number) => { - try { - const newBids = { - bids: [ - ...curr_userBids, - { - number, - priority, - }, - ], - }; - const resp = await axios.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/bid`, newBids); - - if (resp.status === 200) { - refetchUserBids(); - setBids(userBids); - } - } catch (err) { - console.log(err); - } - }; - - const handleDeleteBid = async (number: number) => { - try { - const newBids = curr_userBids.filter(bid => bid.number !== number); - const resp = await axios.post(`${process.env.NEXT_PUBLIC_BACKEND_URL}/jersey/bid`, { - bids: newBids, - }); - - if (resp.status == 200) { - refetchUserBids(); - } - } catch (err) { - console.log(err); - } - }; - - console.log(userEligibleBids) - - // const deleteBid = (ind: number) => { - // const filteredList = biddings.filter(bidding => bidding.number != biddings[ind].number); - // setBiddings(filteredList); - // }; -axios.defaults.withCredentials = true; - // User submit bid form const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddings, userEligibleBids }) => { const [open, setOpen] = useState(false); @@ -207,6 +145,7 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin

    Ensure you click submit to confirm changes

    + {/* {biddings.length == 0 ? ( {/* {biddings.length == 0 ? ( <> ) : ( @@ -322,7 +261,7 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin

    Eligible Bidding Numbers :

    - {Array.from({ length: 100 }, (_, i) => i + 1).map(number => { + {Array.from({ length: 99 }, (_, i) => i + 1).map(number => { const isEligible = userEligibleBids !== undefined ? userEligibleBids.jerseys.includes(number) : false; // Check if the number is eligible return (
    ); - return ; + }; export default Jersey; From 869cef537db9e1d7e1b494bbc4b7599419cec477 Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Mon, 14 Oct 2024 13:11:20 +0800 Subject: [PATCH 15/16] re-routed login, added user info, fixed number issue --- src/app/components/BiddingTable.tsx | 30 ++++++++++++++++++++--------- src/app/components/LoginForm.tsx | 2 +- src/app/dashboard/jersey/page.tsx | 11 ++++++----- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index 0bd1293..b413db7 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -18,6 +18,7 @@ import type { ToastMessage } from "@/src/app/dashboard/jersey/page"; import { BiddingData, EligibleBids, UserBid } from "../dashboard/jersey/types"; interface BiddingList { + user:any, userBids: UserBid; refetchUserBids: () => Promise>; biddings: BiddingData; @@ -31,7 +32,7 @@ interface BiddingList { axios.defaults.withCredentials = true; // User submit bid form -const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddings, userEligibleBids }) => { +const BiddingTable: React.FC = ({user, userBids, refetchUserBids, biddings, userEligibleBids }) => { const [open, setOpen] = useState(false); const [selectedNumber, setSelectedNumber] = useState(null); const priority = userBids ? userBids.bids.length : 0; @@ -50,7 +51,6 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin setSelectedNumber(number); }; - console.log("userBids", userBids); const handlePlaceBid = async (number: number) => { try { const newBids = { @@ -194,17 +194,17 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin
  • */

    Bidding Table

    - {userBids && ( - + - Your Bids - View and manage your current bids + {user.username} + Year: {user.year}, Gender: {user.gender}
    -

    Status: {canBid ? "Can Bid" : "Cannot Bid"}

    +

    Status:

    +

    {canBid ? "Can Bid" : "Cannot Bid"}

    Points:

    @@ -220,8 +220,20 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin ))}
    -

    Bids :

    +
    +
    + + + + {userBids && ( + + + Your Bids + View and manage your current bids + + +
    @@ -261,7 +273,7 @@ const BiddingTable: React.FC = ({ userBids, refetchUserBids, biddin

    Eligible Bidding Numbers :

    - {Array.from({ length: 99 }, (_, i) => i + 1).map(number => { + {Array.from({ length: 100 }, (_, i) => i ).map(number => { const isEligible = userEligibleBids !== undefined ? userEligibleBids.jerseys.includes(number) : false; // Check if the number is eligible return (
    ); - + }; export default Jersey; From 97018506a1df42e9116f52c4d2999b78c376eaed Mon Sep 17 00:00:00 2001 From: Frederick Emerson Date: Mon, 14 Oct 2024 20:41:41 +0800 Subject: [PATCH 16/16] final changes --- src/app/components/BiddingTable.tsx | 6 +++++- src/app/dashboard/jersey/page.tsx | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/app/components/BiddingTable.tsx b/src/app/components/BiddingTable.tsx index b413db7..4ba6fca 100644 --- a/src/app/components/BiddingTable.tsx +++ b/src/app/components/BiddingTable.tsx @@ -202,6 +202,10 @@ const BiddingTable: React.FC = ({user, userBids, refetchUserBids, b
    +
    +

    Round To Bid: {userBids.info.round}

    +

    Current Round: {userBids.system.bidRound}

    +

    Status:

    {canBid ? "Can Bid" : "Cannot Bid"}

    @@ -214,7 +218,7 @@ const BiddingTable: React.FC = ({user, userBids, refetchUserBids, b

    Teams :

    {userBids.info.teams.map(team => ( - + {team.team.name} ))} diff --git a/src/app/dashboard/jersey/page.tsx b/src/app/dashboard/jersey/page.tsx index 1b697b2..f63e821 100644 --- a/src/app/dashboard/jersey/page.tsx +++ b/src/app/dashboard/jersey/page.tsx @@ -77,7 +77,7 @@ const Jersey: React.FC = () => { return response.data.data; } } catch (error) { - console.error("Error during getting user bids", error); + console.error("Error during getting eligible numbers", error); } }