Altered the contact section, department and working hours.

This commit is contained in:
2026-06-17 08:31:04 +05:30
parent 409f77958a
commit 5dfffe7e86
3 changed files with 62 additions and 35 deletions

View File

@@ -18,7 +18,7 @@ export const FooterContact: React.FC<FooterProps> = ({ onScrollToSection }) => {
{/* Brand Column */} {/* Brand Column */}
<div className="lg:col-span-4 space-y-6"> <div className="lg:col-span-4 space-y-6">
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<img src={raiseLogo} alt="RAISE Incubator Logo" className="h-10 w-auto object-contain rounded-lg logo-black" /> <img src={raiseLogo} alt="RAISE Incubator Logo" className="h-10 w-auto object-contain rounded-lg" />
<div> <div>
<span className="font-heading font-extrabold text-lg tracking-tight text-neutral-900 block leading-none">RAISE</span> <span className="font-heading font-extrabold text-lg tracking-tight text-neutral-900 block leading-none">RAISE</span>
<span className="font-sans font-semibold text-[9px] text-neutral-400 uppercase tracking-wider block mt-1"> <span className="font-sans font-semibold text-[9px] text-neutral-400 uppercase tracking-wider block mt-1">
@@ -142,9 +142,9 @@ export const FooterContact: React.FC<FooterProps> = ({ onScrollToSection }) => {
Campus Lab Address Campus Lab Address
</h4> </h4>
<p className="font-sans text-xs md:text-sm text-neutral-400 leading-relaxed max-w-sm mt-1"> <p className="font-sans text-xs md:text-sm text-neutral-400 leading-relaxed max-w-sm mt-1">
1st Floor, Innovation Cell, Steve Jobs Building,<br /> C Block 3rd floor, C306,<br />
RIT Campus, Kuthambakkam Post,<br /> Panel 4 Inside Placement Cell,<br />
Chembarambakkam, Chennai – 600124. RIT Campus, Chennai – 600124.
</p> </p>
</div> </div>
</div> </div>

View File

@@ -73,15 +73,9 @@ export const Hero: React.FC<HeroProps> = ({ onScrollToSection }) => {
> >
<div className="flex items-center gap-3.5 cursor-pointer" onClick={() => onScrollToSection('hero')}> <div className="flex items-center gap-3.5 cursor-pointer" onClick={() => onScrollToSection('hero')}>
<div className="relative"> <div className="relative">
<img src={raiseLogo} alt="RAISE Incubator Logo" className="h-11 w-auto object-contain rounded-lg logo-black" /> <img src={raiseLogo} alt="RAISE Incubator Logo" className="h-11 w-auto object-contain rounded-lg" />
<div className="absolute -top-1 -right-1 w-3 h-3 rounded-full bg-emerald-500 border-2 border-white animate-pulse" /> <div className="absolute -top-1 -right-1 w-3 h-3 rounded-full bg-emerald-500 border-2 border-white animate-pulse" />
</div> </div>
<div>
<span className="font-heading font-extrabold text-xl tracking-tight text-neutral-900 block leading-none">RAISE</span>
<span className="hidden sm:inline-block font-sans font-semibold text-[10px] text-neutral-400 uppercase tracking-wider mt-1">
Incubation Cell
</span>
</div>
</div> </div>
{/* Nav links */} {/* Nav links */}
@@ -123,15 +117,22 @@ export const Hero: React.FC<HeroProps> = ({ onScrollToSection }) => {
<div className="hidden sm:block h-8 w-px bg-neutral-200/80" /> <div className="hidden sm:block h-8 w-px bg-neutral-200/80" />
<img <a
src={collegeLogo} href="https://ritchennai.org"
alt="RIT College Logo" target="_blank"
className="h-10 w-auto object-contain rounded-lg" rel="noopener noreferrer"
onError={(e) => { className="transition-opacity hover:opacity-80 cursor-pointer flex items-center"
// Hide broken image frame if RIT logo is missing or placeholder is empty >
(e.target as HTMLElement).style.display = 'none'; <img
}} src={collegeLogo}
/> alt="RIT College Logo"
className="h-10 w-auto object-contain rounded-lg"
onError={(e) => {
// Hide broken image frame if RIT logo is missing or placeholder is empty
(e.target as HTMLElement).style.display = 'none';
}}
/>
</a>
</div> </div>
</motion.nav> </motion.nav>

View File

@@ -19,6 +19,20 @@ export const PitchBooking: React.FC = () => {
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => { const handleInputChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => {
const { name, value } = e.target; const { name, value } = e.target;
if (name === 'slotDate' && value) {
const date = new Date(value);
const day = date.getUTCDay();
if (day === 6 || day === 0) {
setErrors(prev => ({
...prev,
slotDate: 'Sessions cannot be scheduled on weekends (Saturday/Sunday)'
}));
setFormData(prev => ({ ...prev, slotDate: '' }));
return;
}
}
setFormData(prev => ({ ...prev, [name]: value })); setFormData(prev => ({ ...prev, [name]: value }));
if (errors[name]) { if (errors[name]) {
setErrors(prev => { setErrors(prev => {
@@ -44,7 +58,15 @@ export const PitchBooking: React.FC = () => {
} else if (formData.uniqueness.trim().length < 20) { } else if (formData.uniqueness.trim().length < 20) {
newErrors.uniqueness = 'Please provide a more detailed description (min 20 characters)'; newErrors.uniqueness = 'Please provide a more detailed description (min 20 characters)';
} }
if (!formData.slotDate) newErrors.slotDate = 'Please select a date'; if (!formData.slotDate) {
newErrors.slotDate = 'Please select a date';
} else {
const date = new Date(formData.slotDate);
const day = date.getUTCDay();
if (day === 6 || day === 0) {
newErrors.slotDate = 'Sessions cannot be scheduled on weekends (Saturday/Sunday)';
}
}
if (!formData.slotTime) newErrors.slotTime = 'Please select a time slot'; if (!formData.slotTime) newErrors.slotTime = 'Please select a time slot';
setErrors(newErrors); setErrors(newErrors);
@@ -64,10 +86,9 @@ export const PitchBooking: React.FC = () => {
}; };
const timeSlots = [ const timeSlots = [
"09:30 AM - 11:00 AM", "09:00 AM - 11:00 AM",
"11:30 AM - 01:00 PM", "11:00 AM - 01:00 PM",
"02:00 PM - 03:30 PM", "01:00 PM - 03:00 PM"
"03:45 PM - 05:00 PM"
]; ];
return ( return (
@@ -157,12 +178,15 @@ export const PitchBooking: React.FC = () => {
}`} }`}
> >
<option value="">Select your department</option> <option value="">Select your department</option>
<option value="Computer Science Engineering (CSE)">Computer Science (CSE)</option> <option value="Artificial Intelligence and Data Science">Artificial Intelligence and Data Science</option>
<option value="Information Technology (IT)">Information Technology (IT)</option> <option value="Computer Science and Engineering">Computer Science and Engineering</option>
<option value="Electronics & Communication (ECE)">Electronics & Communication (ECE)</option> <option value="Computer Science and Engineering (AI & ML)">Computer Science and Engineering (AI & ML)</option>
<option value="Electrical & Electronics (EEE)">Electrical & Electronics (EEE)</option> <option value="Computer Science and Business Systems">Computer Science and Business Systems</option>
<option value="Mechanical Engineering (MECH)">Mechanical Engineering (MECH)</option> <option value="Computer and Communication Engineering">Computer and Communication Engineering</option>
<option value="Artificial Intelligence & Data Science">AI & Data Science (AI-DS)</option> <option value="Electrical and Communication Engineering">Electrical and Communication Engineering</option>
<option value="EE(VLSI)">EE(VLSI)</option>
<option value="Mechanical Engineering">Mechanical Engineering</option>
<option value="Biotechnology">Biotechnology</option>
<option value="Other / Interdisciplinary">Other / Interdisciplinary</option> <option value="Other / Interdisciplinary">Other / Interdisciplinary</option>
</select> </select>
{errors.department && <span className="font-sans text-xs text-red-500 font-semibold">{errors.department}</span>} {errors.department && <span className="font-sans text-xs text-red-500 font-semibold">{errors.department}</span>}
@@ -221,8 +245,9 @@ export const PitchBooking: React.FC = () => {
<div className="grid grid-cols-1 sm:grid-cols-2 gap-6"> <div className="grid grid-cols-1 sm:grid-cols-2 gap-6">
{/* Date Input */} {/* Date Input */}
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<label htmlFor="slotDate" className="font-sans text-xs font-bold text-neutral-700 uppercase tracking-wider"> <label htmlFor="slotDate" className="font-sans text-xs font-bold text-neutral-700 uppercase tracking-wider flex justify-between">
Presentation Date <span>Presentation Date</span>
<span className="text-neutral-400 font-semibold text-[10px] normal-case">Mon - Fri only</span>
</label> </label>
<input <input
type="date" type="date"
@@ -240,8 +265,9 @@ export const PitchBooking: React.FC = () => {
{/* Time slot buttons */} {/* Time slot buttons */}
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<label className="font-sans text-xs font-bold text-neutral-700 uppercase tracking-wider"> <label className="font-sans text-xs font-bold text-neutral-700 uppercase tracking-wider flex justify-between">
Time Slot <span>Time Slot</span>
<span className="text-neutral-400 font-semibold text-[10px] normal-case">9:00 AM - 3:00 PM</span>
</label> </label>
<div className="grid grid-cols-1 gap-2"> <div className="grid grid-cols-1 gap-2">
{timeSlots.map((slot) => ( {timeSlots.map((slot) => (