Commit dc150d6d by Madhankumar

api alteration

parent e00b54c0
...@@ -15,13 +15,17 @@ ...@@ -15,13 +15,17 @@
{ {
"mobile": "8888888880", "mobile": "8888888880",
"id": 4 "id": 4
},
{
"mobile": "3545556676",
"id": 5
} }
], ],
"reservedSeats": [ "reservedSeats": [
{ {
"seats": [ "seats": [
"H5", "E8",
"H4" "E7"
], ],
"id": 2 "id": 2
}, },
...@@ -41,7 +45,13 @@ ...@@ -41,7 +45,13 @@
"E1" "E1"
], ],
"id": 4 "id": 4
},
{
"seats": [
"G3",
"H4"
],
"id": 5
} }
] ]
} }
\ No newline at end of file
...@@ -44,7 +44,6 @@ export function ContextProvider({ children }) { ...@@ -44,7 +44,6 @@ export function ContextProvider({ children }) {
setUserSeats([]); setUserSeats([]);
const response = await api.GetAllSeats(); const response = await api.GetAllSeats();
setUserSeats(response); setUserSeats(response);
return response;
} catch (err) { } catch (err) {
toast.error(err.message); toast.error(err.message);
} }
......
...@@ -5,7 +5,7 @@ import { useNavigate } from "react-router-dom"; ...@@ -5,7 +5,7 @@ import { useNavigate } from "react-router-dom";
export function _Login() { export function _Login() {
const navigate = useNavigate(); const navigate = useNavigate();
const { LoginOrRegister, GetAllSeats } = useAppContext(); const { LoginOrRegister, GetSeatById } = useAppContext();
useEffect(() => { useEffect(() => {
sessionStorage.clear(); sessionStorage.clear();
}, []); }, []);
...@@ -15,15 +15,14 @@ export function _Login() { ...@@ -15,15 +15,14 @@ export function _Login() {
if (users) { if (users) {
sessionStorage.setItem("userId", users.id); sessionStorage.setItem("userId", users.id);
//check seat length for already booked seats for the user //check seat length for already booked seats for the user
const allseats = await GetAllSeats(); const userseat = await GetSeatById(users.id);
const userseat = allseats.filter((e) => e.id == users.id);
console.log("ueueu", userseat); if (Object.keys(userseat).length) {
if (userseat.length) {
//if store the seat length in session //if store the seat length in session
sessionStorage.setItem("seatLimit", userseat[0].seats.length); sessionStorage.setItem("seatLimit", userseat.seats.length);
//redirect to booking component otherwise it will not redirect if not login //redirect to booking component otherwise it will not redirect if not login
sessionStorage.setItem("currentPath", "/booking"); sessionStorage.setItem("currentPath", "/booking");
navigate("/booking", { state: { seats: allseats } }); navigate("/booking");
} else { } else {
sessionStorage.setItem("currentPath", "/seat-limit"); sessionStorage.setItem("currentPath", "/seat-limit");
navigate("/seat-limit"); navigate("/seat-limit");
......
import { useEffect, useLayoutEffect, useState } from "react"; import { useEffect, useLayoutEffect, useState } from "react";
import SeatLayout from "../components/top-level/seat-layout"; import SeatLayout from "../components/top-level/seat-layout";
import { useAppContext } from "../_context"; import { useAppContext } from "../_context";
import { useLocation, useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { bookingSeats } from "./seed"; import { bookingSeats } from "./seed";
export function _Seatlayout() { export function _Seatlayout() {
const { userseats, AddOrUpdateSeats, GetAllSeats } = useAppContext(); const { userseats, AddOrUpdateSeats, GetAllSeats } = useAppContext();
const [seats, setSeats] = useState([]);
const [reservedSeat, setReservedSeat] = useState([]); const [reservedSeat, setReservedSeat] = useState([]);
const [selectedSeat, setSelectedSeat] = useState([]); const [selectedSeat, setSelectedSeat] = useState([]);
const navigate = useNavigate(); const navigate = useNavigate();
const userId = sessionStorage.getItem("userId"); const userId = sessionStorage.getItem("userId");
const seatLimit = sessionStorage.getItem("seatLimit"); const seatLimit = sessionStorage.getItem("seatLimit");
const location = useLocation();
const seatState = location?.state?.seats;
useLayoutEffect(() => {
handleLoad();
}, []);
useEffect(() => { useEffect(() => {
handleReservedSeats(); handleReservedSeats();
setSeats(userseats); }, [userseats]);
}, [seats, userseats]); useEffect(() => {
const handleLoad = async () => { GetAllSeats();
if (seatState) { }, []);
setSeats(location?.state?.seats);
return null;
}
await GetAllSeats();
};
const handleReservedSeats = () => { const handleReservedSeats = () => {
let seatArray = []; let seatArray = [];
const reservedSeats = seats?.filter((e) => e.id != userId); const reservedSeats = userseats?.filter((e) => e.id != userId);
reservedSeats.forEach((element) => { reservedSeats.forEach((element) => {
element.seats.forEach((e) => { element.seats.forEach((e) => {
seatArray = [...seatArray, e]; seatArray = [...seatArray, e];
setReservedSeat(seatArray); setReservedSeat(seatArray);
}); });
}); });
const selectedSeats = seats?.find((e) => e.id == userId); const selectedSeats = userseats?.find((e) => e.id == userId);
const results = selectedSeats?.seats; const results = selectedSeats?.seats;
setSelectedSeat(results); setSelectedSeat(results);
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment