diff --git a/.DS_Store b/.DS_Store index 139e6f0..5f66833 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index 30922db..4218a49 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,8 @@ yarn-error.log* # env files (can opt-in for committing if needed) .env* +.firebase-key.json +firebase-key.json # vercel .vercel diff --git a/components/LoadingSpinner.tsx b/components/LoadingSpinner.tsx new file mode 100644 index 0000000..2f033c7 --- /dev/null +++ b/components/LoadingSpinner.tsx @@ -0,0 +1,38 @@ +interface LoadingSpinnerProps { + size?: "sm" | "md" | "lg"; + className?: string; + fullScreen?: boolean; +} + +export default function LoadingSpinner({ + size = "md", + className = "", + fullScreen = false, +}: LoadingSpinnerProps) { + const sizeClasses = { + sm: "h-4 w-4", + md: "h-8 w-8", + lg: "h-12 w-12", + }; + + const spinner = ( +
{error}
} +{error}
} ++ Your UTD roomate match starts here. +
++ Our goal it to help students like you find +
++ compatible roommates based on lifestyle, +
++ habits, and interests! Create your profile +
++ and explore potential matches to have a +
++ roommate that fits your vibe! +
+{description}
++ Find your ideal roommate match with our comprehensive platform +
++ designed specificially for students just like you +
++ The passionate individuals building MeteorMate +
+{member.major}
+Class of {member.gradYear}
+Passwords must:
- {minCharacters ? ( + {passwordValidation.checks.minLength ? (
{error}
)} @@ -130,9 +136,11 @@ export default function VerifyEmailPage() { {/* verify button */} diff --git a/src/app/authentication/verifyPassword/page.tsx b/src/app/authentication/verifyPassword/page.tsx index 5be0233..50c5c10 100644 --- a/src/app/authentication/verifyPassword/page.tsx +++ b/src/app/authentication/verifyPassword/page.tsx @@ -2,6 +2,7 @@ import React, { useRef, useState } from "react"; import LogoBox from "../../../../components/LogoBox"; import { useRouter, useSearchParams } from "next/navigation"; +import LoadingSpinner from "../../../../components/LoadingSpinner"; export default function VerifyPassword() { const router = useRouter(); @@ -98,9 +99,12 @@ export default function VerifyPassword() { // ✅ only go to new password page *after* successful verification router.push("/authentication/newPassword"); - } catch (err: any) { + } catch (err: unknown) { console.error("Error verifying reset code:", err); - setError(err.message || "Verification failed. Please try again."); + const errorMessage = err && typeof err === "object" && "message" in err && typeof err.message === "string" + ? err.message + : "Verification failed. Please try again."; + setError(errorMessage); } finally { setIsVerifying(false); } @@ -136,7 +140,8 @@ export default function VerifyPassword() { ref={(el: HTMLInputElement | null) => { inputsRef.current[index] = el; }} - className="w-12 h-12 text-center text-xl border-2 border-gray-300 rounded-lg focus:outline-none focus:border-green-500" + disabled={isVerifying} + className="w-12 h-12 text-center text-xl border-2 border-gray-300 rounded-lg focus:outline-none focus:border-green-500 disabled:opacity-50 disabled:cursor-not-allowed" /> ))} @@ -149,8 +154,9 @@ export default function VerifyPassword() { diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 67be090..11a1cab 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -10,8 +10,58 @@ export default function RootLayout({ children: React.ReactNode; }) { return ( - - + + + {/* Preconnect for better font loading performance */} + + + + {/* Urbanist font */} + + + {/* Oranienbaum font */} + + + {/* Outfit font */} + + {/* Didact Gothic font */} + + + {/* Didact Inter font */} + + + {/* inter font */} + + + {/* pavanam font */} + + +
- - Your UTD roomate match starts here. -
-- Our goal it to help students like you find -
-- compatible roommates based on lifestyle, -
-- habits, and interests! Create your profile -
-- and explore potential matches to have a -
-- roommate that fits your vibe! -
-
- - Find your ideal roommate match with our comprehensive platform -
-- designed specificially for students just like you -
-
- - Our advanced algorithm analyzes personality traits and preferences to - find you the ideal roommate. -
-
- - View comprehensive compatibility metrics and compare potential roommates - using interactive charts and graphs. -
-
- - Secure system with your school email and social media verification - ensures all users are genuine UTD students. -
-
- - Your data is always protected. You control what information you share and - who can see it. -
-
- - Tinder styled swiping interface with detailed profile and compatibility - scores makes finding your roommate fun and intuitive. -
-
- - Optional social media connection for enhanced matching and verification. -
-
-