diff --git a/client/global.css b/client/global.css index 506f527f..cfe02f52 100644 --- a/client/global.css +++ b/client/global.css @@ -109,6 +109,26 @@ body { @apply bg-background text-foreground; + position: fixed; + width: 100%; + height: 100vh; + overflow: hidden; + } + + #root { + width: 100%; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; + } + + input, + select, + textarea { + font-size: 16px; + -webkit-appearance: none; + appearance: none; } :where(p, span, li, h1, h2, h3, h4, h5, h6, a, button, label, td, th) { diff --git a/client/pages/CodesmitersArenaForm.tsx b/client/pages/CodesmitersArenaForm.tsx index ec71b2af..e7df4d5a 100644 --- a/client/pages/CodesmitersArenaForm.tsx +++ b/client/pages/CodesmitersArenaForm.tsx @@ -1,11 +1,11 @@ import Layout from "@/components/Layout"; import { ArrowLeft, ArrowRight } from "lucide-react"; -import { useState } from "react"; +import { useState, useCallback } from "react"; import { useNavigate } from "react-router-dom"; -const GOOGLE_FORM_ID = "1FAIpQLSe8UNU5n8ok9tCuF7wRHdyaR3lI6hHvV-0Gw78OeD7c9GMxzQ"; +const GOOGLE_FORM_ID = "1FAIpQLSfMtWEdU0ZUx0gP0RkkPIiA20M12710F321l3_1qCZ2movcgQ"; -const sections = ["A", "B", "C", "D", "E", "F"]; +const sections = ["1", "2", "3"]; const departments = [ "Electronics and Communication Engineering", "Computer Science and Engineering", @@ -44,29 +44,26 @@ export default function CodesmitersArenaForm() { const [isSubmitting, setIsSubmitting] = useState(false); const [error, setError] = useState(""); - const handleInputChange = ( - memberNum: "member1" | "member2", - field: keyof Member, - value: string - ) => { - setFormData((prev) => ({ - ...prev, - [memberNum]: { - ...prev[memberNum], - [field]: value, - }, - })); - setError(""); - }; + const handleInputChange = useCallback( + ( + memberNum: "member1" | "member2", + field: keyof Member, + value: string + ) => { + setFormData((prev) => ({ + ...prev, + [memberNum]: { + ...prev[memberNum], + [field]: value, + }, + })); + setError(""); + }, + [] + ); const formatName = (name: string): string => { - const trimmed = name.trim(); - if (trimmed.length === 0) return ""; - const parts = trimmed.split(" "); - const lastName = parts[parts.length - 1]; - const firstLetter = lastName.charAt(0).toUpperCase(); - const restOfName = parts.slice(0, -1).join(" ").toUpperCase(); - return `${restOfName} ${firstLetter}`.trim(); + return name.trim().toUpperCase(); }; const validateMember = (member: Member, memberNum: number): boolean => { @@ -110,17 +107,16 @@ export default function CodesmitersArenaForm() { const formattedMember2Name = formatName(formData.member2.name); const submitData = new FormData(); - submitData.append("entry.1", formattedMember1Name); // Member 1 Name - submitData.append("entry.2", formData.member1.email); // Member 1 Email - submitData.append("entry.3", formData.member1.regNo); // Member 1 Reg No - submitData.append("entry.4", formData.member1.department); // Member 1 Department - submitData.append("entry.5", formData.member1.section); // Member 1 Section - submitData.append("entry.6", formattedMember2Name); // Member 2 Name - submitData.append("entry.7", formData.member2.email); // Member 2 Email - submitData.append("entry.8", formData.member2.regNo); // Member 2 Reg No - submitData.append("entry.9", formData.member2.department); // Member 2 Department - submitData.append("entry.10", formData.member2.section); // Member 2 Section - submitData.append("entry.11", "Codesmith's Arena"); // Event Name + submitData.append("entry.1884265043", formattedMember1Name); // Member 1 Name + submitData.append("entry.551813573", formData.member1.email); // Member 1 Email + submitData.append("entry.513669972", formData.member1.regNo); // Member 1 Reg No + submitData.append("entry.85602000", formData.member1.department); // Member 1 Department + submitData.append("entry.1212348438", formData.member1.section); // Member 1 Section + submitData.append("entry.994293442", formattedMember2Name); // Member 2 Name + submitData.append("entry.258782101", formData.member2.email); // Member 2 Email + submitData.append("entry.1696388815", formData.member2.regNo); // Member 2 Reg No + submitData.append("entry.318312040", formData.member2.department); // Member 2 Department + submitData.append("entry.1521586158", formData.member2.section); // Member 2 Section await fetch( `https://docs.google.com/forms/d/e/${GOOGLE_FORM_ID}/formResponse`, @@ -152,17 +148,17 @@ export default function CodesmitersArenaForm() { const memberKey = memberNum === 1 ? "member1" : "member2"; return ( -