feat(InterviewBooking): Added more CSS and refined the interviewform

This commit is contained in:
ahmad.ahmad1 2025-04-05 16:02:14 -06:00
parent 34e752feca
commit 6aade88454
5 changed files with 80 additions and 47 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -1,5 +1,5 @@
import InterviewForm from "./InterviewForm"; import InterviewForm from "./InterviewForm";
import logo from "../Header/logo.webp"; import logo from "../Header/logo.png";
import Ender from "../Footer/Ender"; import Ender from "../Footer/Ender";
import "./InterviewBooking.css"; import "./InterviewBooking.css";
/** /**
@ -13,27 +13,19 @@ export default function InterviewBooking() {
return ( return (
<div id="InterviewBooking"> <div id="InterviewBooking">
<header> <header>
<img id="logo" src={logo} alt="Schulich Off-Road's logo" /> <img
id="logo"
src={logo}
alt="Schulich Off-Road's logo"
style={{ backgroundColor: "inherit" }}
/>
<h1>UCalgary Baja</h1> <h1>UCalgary Baja</h1>
</header> </header>
<div id="MainForm"> <div id="MainForm">
<h2>Booking Interview Form</h2> <h2>Booking Interview Form</h2>
<p>Please kindly fill out the form and our team will contact you.</p> <p>Please kindly fill out the form and our team will contact you.</p>
<InterviewForm /> <InterviewForm />
<h4>
What to do if I cannot make it to any of the avaliable time slots or
need to rescedule?
</h4>
<p>
While we highly encourage sceduling an interview in one of the above
time slots, we recongize that not everyone can make it work with their
personal and university schedules.
</p>
<p>
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 /> */} {/* <DateTimePicker /> */}
</div> </div>
<Ender /> <Ender />

View File

@ -1,19 +1,18 @@
:root { :root {
--interviewspacing: clamp(5px, 2.5svw, 200px); --interviewspacing: clamp(5px, 2.5svw, 200px);
--interviewwidth: 260px;
} }
#InterviewBooking header { #InterviewBooking header {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
background-color: aqua; background-color: lightslategray;
justify-content: space-around; justify-content: space-around;
margin: 0px; margin: 0px;
} }
#InterviewBooking form {
width: 80%;
}
#InterviewForm { #InterviewForm {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
width: 100%;
justify-content: center; justify-content: center;
} }
#InterviewForm div { #InterviewForm div {
@ -22,18 +21,8 @@
padding-left: var(--interviewspacing); padding-left: var(--interviewspacing);
padding-right: var(--interviewspacing); padding-right: var(--interviewspacing);
text-align: start; text-align: start;
width: var(--interviewwidth);
} }
#TimeDate {
display: flex;
flex-direction: row;
justify-content: center;
}
#TimeDate h4 {
padding-left: var(--interviewspacing);
padding-right: var(--interviewspacing);
text-align: start;
}
#InterviewForm div label { #InterviewForm div label {
font-weight: 700; font-weight: 700;
} }
@ -42,28 +31,54 @@
margin: 0px; margin: 0px;
} }
#InterviewForm div input { #InterviewForm div input {
width: 200px;
margin-top: 1svh; margin-top: 1svh;
height: 30px; height: 30px;
} }
#MainForm { #MainForm {
align-items: center; align-items: center;
display: flex; display: flex;
justify-content: center;
flex-direction: column; flex-direction: column;
} }
#MainForm form { #MainForm form {
display: flex; display: flex;
justify-content: center;
flex-direction: column; flex-direction: column;
text-align: center; align-items: center;
width: 80%;
} }
#TimeSlotSelector { #TimeSlotSelector {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
width: 100%;
justify-content: center; justify-content: center;
} }
.TimeSlot { .TimeSlot {
padding-left: var(--interviewspacing); padding-left: var(--interviewspacing);
padding-right: var(--interviewspacing); padding-right: var(--interviewspacing);
width: var(--interviewwidth);
}
.TimeSlot h4 {
margin: 0px;
margin-top: 30px;
}
.TimeSlot p {
margin: 0px;
margin-bottom: 20px;
}
#InterviewSubmit {
display: flex;
justify-content: center;
width: inherit;
}
#InterviewSubmit button {
background-color: lightgreen;
width: 20%;
height: 5svh;
margin-bottom: 5svh;
font-size: large;
border: none;
}
#InterviewText {
padding-left: var(--interviewspacing);
padding-right: var(--interviewspacing);
width: 80%;
} }

View File

@ -98,18 +98,34 @@ const InterviewForm = () => {
<p>(for interview confirmation email)</p> <p>(for interview confirmation email)</p>
</div> </div>
</div> </div>
<div id="TimeDate">
<h4>Interview Date</h4>
<h4>Interview Time</h4>
</div>
{/* Time Slot Selector */} {/* Time Slot Selector */}
<TimeDateSelector <TimeDateSelector
onTimeSlotSelect={(timeSlot) => setSelectedTimeSlot(timeSlot)} onTimeSlotSelect={(timeSlot) => setSelectedTimeSlot(timeSlot)}
timeDateSelectorGet={getTimeDates} timeDateSelectorGet={getTimeDates}
/> />
<button type="submit" disabled={isButtonDisabled}> <div id="InterviewText">
Submit <h4>
</button> What to do if I cannot make it to any of the avaliable time slots or
need to rescedule?
</h4>
<p>
While we highly encourage sceduling an interview in one of the above
time slots, we recongize that not everyone can make it work with
their personal and university schedules.
</p>
<p>
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>
</div>
<p id="InterviewError"> </p>
<div id="InterviewSubmit">
<button type="submit" disabled={isButtonDisabled}>
Submit
</button>
</div>
</form> </form>
{/* Success Dialog */} {/* Success Dialog */}

View File

@ -76,8 +76,9 @@ export default function TimeDateSelector({
{Object.keys(allDatesAvailable).length > 0 ? ( {Object.keys(allDatesAvailable).length > 0 ? (
<> <>
<div className="TimeSlot"> <div className="TimeSlot">
<h4>Interview Date</h4>
<label htmlFor="date-picker"> <label htmlFor="date-picker">
<h4>Select a Date:</h4> <p>Select a Date:</p>
</label> </label>
<DatePicker <DatePicker
selected={selectedDate} selected={selectedDate}
@ -89,18 +90,27 @@ export default function TimeDateSelector({
/> />
</div> </div>
<div className="TimeSlot"> <div className="TimeSlot">
<h4>Interview Time</h4>
{!selectedDate ? ( {!selectedDate ? (
<> <>
<h4>Available Time Slots:</h4> <p>Available Time Slots:</p>
<p>Please select the a date to see time slots.</p> <div
style={{
height: "241.633px",
display: "flex",
alignItems: "center",
}}
>
<p>Please select the a date to see time slots.</p>
</div>
</> </>
) : ( ) : (
<> <>
<label htmlFor="time-picker"> <label htmlFor="time-picker">
<h4> <p>
Available Time Slots for{" "} Available Time Slots for{" "}
{selectedDate.toISOString().split("T")[0]}: {selectedDate.toISOString().split("T")[0]}:
</h4> </p>
</label> </label>
{selectedDate === undefined ? ( {selectedDate === undefined ? (
<> <>