Commit 33d00106 by Syed Abdul Rahman

Implemented create user functionality if user does not exists and bulk seat…

Implemented create user functionality if user does not exists and bulk seat create and update functionality
parent 1ae88499
{ {
"users": [ "users": [
{ {
"id": "1", "id": "1ad9",
"email": "syedabdul.rahman@krds.com" "email": "syedabdul.rahman@krds.com"
}, },
{ {
"id": "2", "id": "06dd",
"email": "abdul@gmail.com"
},
{
"id": "b31d",
"email": "lucy@gmail.com" "email": "lucy@gmail.com"
}, },
{ {
"id": "3", "id": "62fd",
"email": "abdul@gmail.com" "email": ""
}, },
{ {
"id": "05cc", "id": "08da",
"email": "test@gmail.com" "email": "xyz@gmail.com"
},
{
"id": "a6af",
"email": "testing@gmail.com"
} }
], ],
"selectedSeats": [ "selectedSeats": [
{ {
"id": "1", "id": "a6af",
"userid": "1", "userid": "a6af",
"selected": [ "selected": [
{ {
"row": 8, "row": 8,
"seat": 5 "seat": 2
},
{
"row": 8,
"seat": 3
},
{
"row": 8,
"seat": 4
},
{
"row": 8,
"seat": 4
},
{
"row": 8,
"seat": 3
},
{
"row": 8,
"seat": 2
},
{
"row": 8,
"seat": 4
},
{
"row": 8,
"seat": 3
},
{
"row": 8,
"seat": 2
},
{
"row": 8,
"seat": 3
},
{
"row": 8,
"seat": 4
},
{
"row": 8,
"seat": 2
},
{
"row": 8,
"seat": 2
},
{
"row": 8,
"seat": 3
},
{
"row": 8,
"seat": 4
} }
] ]
} }
......
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { useState } from 'react'; import { useState } from 'react';
import { setItem } from '../../../utils/localStorage' import { setItem } from '../../../utils/localStorage'
import { appConstants } from '../../../utils/AppConstants';
import Input from '../../Base/Input/Index' import Input from '../../Base/Input/Index'
import Button from '../../Base/Button/Index'; import Button from '../../Base/Button/Index';
import styles from './styles.module.css'; import styles from './styles.module.css';
...@@ -16,7 +17,7 @@ const Login = () => { ...@@ -16,7 +17,7 @@ const Login = () => {
const login = async () => { const login = async () => {
const response = await fetch("http://localhost:3000/users") const response = await fetch(`${appConstants.API_URL_USERS}`)
const data = await response.json(); const data = await response.json();
const user = data.find((e) => e.email == email); const user = data.find((e) => e.email == email);
if (user) { if (user) {
...@@ -24,12 +25,16 @@ const Login = () => { ...@@ -24,12 +25,16 @@ const Login = () => {
setItem("modal", true) setItem("modal", true)
navigate("/") navigate("/")
} else { } else {
const response = await fetch("http://192.168.1.121:3000/users", { const response = await fetch(`${appConstants.API_URL_USERS}`, {
method: "POST", method: "POST",
body: JSON.stringify({ body: JSON.stringify({
email: email email: email
}) })
}) })
const data = await response.json();
navigate("/")
setItem("user", data.id)
setItem("modal", true)
} }
} }
...@@ -44,7 +49,6 @@ const Login = () => { ...@@ -44,7 +49,6 @@ const Login = () => {
<div className={styles.desc}>Login with email and passoword to book seats.</div> <div className={styles.desc}>Login with email and passoword to book seats.</div>
</div> </div>
<form className={styles.formWrapper} onSubmit={handleSubmit}> <form className={styles.formWrapper} onSubmit={handleSubmit}>
<Input <Input
label="Email" label="Email"
name="email" name="email"
......
...@@ -15,11 +15,11 @@ const SeatBooking = () => { ...@@ -15,11 +15,11 @@ const SeatBooking = () => {
let userId = getItem("user"); let userId = getItem("user");
const navigate = useNavigate(); const navigate = useNavigate();
const [selectedSeats, setSelectedSeats] = useState(); const [selectedSeats, setSelectedSeats] = useState(); //persisted seats state
const [showSeatsModal, setShowSeatsModal] = useState(() => getItem("modal")); const [showSeatsModal, setShowSeatsModal] = useState(() => getItem("modal"));
const [showSeatsConfirmationModal, setShowSeatsConfirmationModal] = useState(false); const [showSeatsConfirmationModal, setShowSeatsConfirmationModal] = useState(false);
const [onOfSeats, setNoOfSeats] = useState(); const [onOfSeats, setNoOfSeats] = useState();
const [currentSeats, setCurrentSeats] = useState([]) // currently selecting seats before booking const [currentSeats, setCurrentSeats] = useState([]) // currently selecting seats before booking(local)
useEffect(() => { useEffect(() => {
getSelectedSeats(); getSelectedSeats();
...@@ -460,6 +460,7 @@ const SeatBooking = () => { ...@@ -460,6 +460,7 @@ const SeatBooking = () => {
body: JSON.stringify({ selected: body }) body: JSON.stringify({ selected: body })
}); });
getSelectedSeats(); getSelectedSeats();
setCurrentSeats([])
} catch (error) { } catch (error) {
console.log(error, "error") console.log(error, "error")
...@@ -493,18 +494,18 @@ const SeatBooking = () => { ...@@ -493,18 +494,18 @@ const SeatBooking = () => {
} }
}); });
let info = { // let info = {
id: userId, // id: userId,
userid: userId, // userid: userId,
selected: [ // selected: [
{ // {
row: rowId, // row: rowId,
seat: columnId // seat: columnId
} // }
] // ]
} // }
const existingUserSeatMap = selectedSeats?.find((ele) => ele.id == userId); // const existingUserSeatMap = selectedSeats?.find((ele) => ele.id == userId);
if (existingUserSeatMap) { // if (existingUserSeatMap) {
// editSeatsApi( // editSeatsApi(
// existingUserSeatMap.userid, // existingUserSeatMap.userid,
// [...info.selected, ...existingUserSeatMap.selected], // [...info.selected, ...existingUserSeatMap.selected],
...@@ -513,9 +514,9 @@ const SeatBooking = () => { ...@@ -513,9 +514,9 @@ const SeatBooking = () => {
// seat: columnId // seat: columnId
// } // }
// ); // );
} else { // } else {
// createSeatApi(info); // createSeatApi(info);
} // }
} }
const logout = () => { const logout = () => {
...@@ -537,7 +538,27 @@ const SeatBooking = () => { ...@@ -537,7 +538,27 @@ const SeatBooking = () => {
} }
const seatsFinal = () => { const seatsFinal = () => {
setShowSeatsConfirmationModal(false)
setShowSeatsConfirmationModal(false);
const existingUserSeatMap = selectedSeats?.find((ele) => ele.id == userId);
if (existingUserSeatMap) {
editSeatsApi(
existingUserSeatMap.userid,
[...currentSeats, ...existingUserSeatMap.selected],
{
row: 0,
seat: 0
}
);
} else {
let info = {
id: userId,
userid: userId,
selected: currentSeats
}
createSeatApi(info);
}
} }
return ( return (
...@@ -556,7 +577,7 @@ const SeatBooking = () => { ...@@ -556,7 +577,7 @@ const SeatBooking = () => {
seatData={data} seatData={data}
selectedSeats={selectedSeats} selectedSeats={selectedSeats}
onSeatClick={onSelectSeats} onSeatClick={onSelectSeats}
currentSeats= {currentSeats} currentSeats={currentSeats}
/> />
</div> </div>
<div className={styles['btn-wrapper']}> <div className={styles['btn-wrapper']}>
......
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