feat(InterviewBooking): Started CSS for Booking Form (upto top half)

This commit is contained in:
ahmad.ahmad1 2025-04-05 11:59:07 -06:00
parent ec0641cfe2
commit 02e70c025e
3 changed files with 98 additions and 46 deletions

View File

@ -1,6 +1,7 @@
import InterviewForm from "./InterviewForm"; import InterviewForm from "./InterviewForm";
import logo from "../Header/logo.webp"; import logo from "../Header/logo.webp";
import Ender from "../Footer/Ender"; import Ender from "../Footer/Ender";
import "./InterviewBooking.css";
/** /**
* @param {null} null - requires onthing * @param {null} null - requires onthing
* @returns {JSX.Element} Page - HTML tags and JS functionality * @returns {JSX.Element} Page - HTML tags and JS functionality
@ -8,31 +9,34 @@ import Ender from "../Footer/Ender";
* @author Brock <darkicewolf50@gmail.com> * @author Brock <darkicewolf50@gmail.com>
* @todo add who helped developed the site and finalize css * @todo add who helped developed the site and finalize css
*/ */
export default function InterviewBooking () { export default function InterviewBooking() {
return ( return (
<> <div id="InterviewBooking">
<img id="logo" src={logo} alt="Schulich Off-Road's logo" /> <header>
<h1>UofC Baja Interview Form</h1> <img id="logo" src={logo} alt="Schulich Off-Road's logo" />
<p>Please kindly fill out the form and our team will contact you.</p> <h1>UCalgary Baja</h1>
<InterviewForm /> </header>
<h4> <div id="MainForm">
What to do if I cannot make it to any of the avaliable time slots or <h2>Booking Interview Form</h2>
need to rescedule? <p>Please kindly fill out the form and our team will contact you.</p>
</h4> <InterviewForm />
<p> <h4>
While we highly encourage sceduling an interview in one of the above What to do if I cannot make it to any of the avaliable time slots or
time slots, we recongize that not everyone can make it work with their need to rescedule?
personal and university schedules. </h4>
</p> <p>
<p> While we highly encourage sceduling an interview in one of the above
Please email us at{" "} time slots, we recongize that not everyone can make it work with their
<a href="mailto:uofcbaja@gmail.com">uofcbaja@gmail.com</a> to work out personal and university schedules.
an alternate interview time or for rescheduling. </p>
</p> <p>
{/* <DateTimePicker /> */} Please email us at{" "}
<a href="mailto:uofcbaja@gmail.com">uofcbaja@gmail.com</a> to work out
an alternate interview time or for rescheduling.
</p>
{/* <DateTimePicker /> */}
</div>
<Ender /> <Ender />
</div>
</>
); );
}; }

View File

@ -0,0 +1,44 @@
:root {
--interviewspacing: clamp(5px, 2.5svw, 200px);
}
#InterviewBooking header {
display: flex;
flex-direction: row;
background-color: aqua;
justify-content: space-around;
margin: 0px;
}
#InterviewBooking form {
width: 80%;
}
#InterviewForm {
display: flex;
flex-direction: row;
justify-content: center;
}
#InterviewForm div {
display: flex;
flex-direction: column;
padding-left: var(--interviewspacing);
padding-right: var(--interviewspacing);
font-weight: 700;
text-align: start;
}
#InterviewForm div input {
width: 20.3svw;
margin-top: 1svh;
height: 30px;
}
#MainForm {
align-items: center;
display: flex;
justify-content: center;
flex-direction: column;
}
#MainForm form {
display: flex;
justify-content: center;
flex-direction: column;
text-align: center;
}

View File

@ -13,7 +13,7 @@ const InterviewForm = () => {
const [isButtonDisabled, setIsButtonDisabled] = useState(false); const [isButtonDisabled, setIsButtonDisabled] = useState(false);
const dialogRef = useRef(null); const dialogRef = useRef(null);
const [selectedTimeSlot, setSelectedTimeSlot] = useState(null); const [selectedTimeSlot, setSelectedTimeSlot] = useState(null);
const [getTimeDates, setGetTimeDates] = useState(''); const [getTimeDates, setGetTimeDates] = useState("");
/** /**
* @param {String HTML} event - Takes in form info * @param {String HTML} event - Takes in form info
@ -33,7 +33,6 @@ const InterviewForm = () => {
// disable button to stop multiple requests // disable button to stop multiple requests
setIsButtonDisabled(true); setIsButtonDisabled(true);
// await new Promise((res) => setTimeout(res, 1000)); // await new Promise((res) => setTimeout(res, 1000));
const formData = new FormData(event.target); const formData = new FormData(event.target);
const formObject = Object.fromEntries(formData.entries()); const formObject = Object.fromEntries(formData.entries());
@ -61,13 +60,12 @@ const InterviewForm = () => {
// } // }
// ); // );
let data = await res.json(); let data = await res.json();
if (data["body"]["Success"] === true) { if (data["body"]["Success"] === true) {
dialogRef.current.showModal(); dialogRef.current.showModal();
} else { } else {
setGetTimeDates(getTimeDates+'i'); setGetTimeDates(getTimeDates + "i");
} }
setIsButtonDisabled(false); setIsButtonDisabled(false);
@ -76,22 +74,28 @@ const InterviewForm = () => {
return ( return (
<> <>
<form onSubmit={formsubmit}> <form onSubmit={formsubmit}>
<label for="name">Name (What to call you):</label> <div id="InterviewForm">
<input <div>
type="text" <label for="name">Name (What to call you):</label>
id="fname" <input
name="intervieweeName" type="text"
placeholder="Jaeinceins" id="fname"
required name="intervieweeName"
/> placeholder="Jaeinceins"
<label for="email">UCalgary Email:</label> required
<input />
type="text" </div>
id="email" <div>
name="intervieweeEmail" <label for="email">UCalgary Email:</label>
placeholder="jaeinceins.bhaja@ucalgary.ca" <input
required type="text"
/> id="email"
name="intervieweeEmail"
placeholder="jaeinceins.bhaja@ucalgary.ca"
required
/>
</div>
</div>
{/* Time Slot Selector */} {/* Time Slot Selector */}
<TimeDateSelector <TimeDateSelector