Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
11ad1cf
feat: super listing page
anaj00 May 19, 2026
fed4a06
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 May 19, 2026
081aed6
chore: fixed the spotlight
anaj00 May 19, 2026
0a67896
feat: add handwriting font and improve layout for Super Listings section
anaj00 May 19, 2026
55d8a04
feat: super listing job board page
anaj00 May 19, 2026
b5a9e6b
feat: make the sticky notes spotlight and swing on hover
anaj00 May 20, 2026
61d62c7
feat: blend the sections together
anaj00 May 20, 2026
a80232b
chore: remove bottom nav for mobile super listing
anaj00 May 20, 2026
10c0356
chore: transition of hero section
anaj00 May 20, 2026
1476e70
chore: remove bottom nav bar on super listing
anaj00 May 20, 2026
eb41ac8
chore: bigger mobile text + change look of super listing card
anaj00 May 20, 2026
42c54f2
feat: add role field to listings and update titles for clarity
anaj00 May 20, 2026
146e2ad
chore: add search page to mobile nav visibility conditions
anaj00 May 20, 2026
7178a0e
chore: added logo + mobile view
anaj00 May 20, 2026
bf0b881
chore: mobile version bg2 image
anaj00 May 20, 2026
6edbdea
chore: flicker light, hyperlinked sticky notes, and cycling spotlights
anaj00 May 20, 2026
23086fc
chore: cone size mobile
anaj00 May 20, 2026
908e59b
chore: wider cone on desktop
anaj00 May 20, 2026
b20301f
feat: rev 1 for challenge ph
neue-dev May 20, 2026
8dc4473
feat: iter 2
neue-dev May 20, 2026
f23f068
patch: fix layout and styling issues
neue-dev May 20, 2026
da0026d
chore: made the challenge pages look cohesive
anaj00 May 21, 2026
39829fd
feat: meh
anaj00 May 21, 2026
e0218f4
chore: challengeph2
anaj00 May 21, 2026
838d2ff
chore: meh3
anaj00 May 21, 2026
294766d
chore: best layout
anaj00 May 21, 2026
3907199
chore: meme
anaj00 May 21, 2026
1e8130f
chore: mlem
anaj00 May 21, 2026
f66287e
ref: remove deprecated components
anaj00 May 24, 2026
a01ae9a
refactor: replace HeaderIcon and HeaderText with HeaderTitle for cons…
anaj00 May 24, 2026
c8f856f
patch: radio field handling in forms
neue-dev May 24, 2026
bdd613e
patch: make sure radio fields use the correct label
neue-dev May 24, 2026
df232fe
feat: enhance recipient email validation to include checks against st…
anaj00 May 25, 2026
282eaaa
chore: allow duplicate emails
anaj00 May 28, 2026
b37c30a
Merge branch 'main' into develop
anaj00 May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions app/error.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { Card } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { HeaderIcon, HeaderText } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { TriangleAlert } from "lucide-react";
import { useEffect } from "react";
import { SUPPORT_FACEBOOK } from "@/constants";
Expand All @@ -23,10 +23,9 @@ export default function Error({
<div className="flex min-h-screen flex-col items-center justify-center gap-4">
<Card className="flex flex-col gap-4 p-12">
<img src="/error.png" alt="Error" className="mx-auto w-96" />
<div className="flex items-center gap-3">
<HeaderIcon icon={TriangleAlert} />
<HeaderText>Something went wrong.</HeaderText>
</div>
<HeaderTitle icon={TriangleAlert} className="mb-0">
Something went wrong.
</HeaderTitle>
<span>
Sorry for the inconvenience. Please{" "}
<a href={SUPPORT_FACEBOOK}>contact us for support</a>.
Expand Down
12 changes: 4 additions & 8 deletions app/hire/dashboard/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { Briefcase, Plus } from "lucide-react";
import { useState, useRef, useEffect } from "react";
import { useAuthContext } from "../authctx";
import { Job } from "@/lib/db/db.types";
import { HeaderIcon, HeaderText } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { useRouter } from "next/navigation";

const SUPER_LISTING_CREATE_PATH =
Expand Down Expand Up @@ -89,13 +89,9 @@ function DashboardContent() {
isMobile ? "px-1" : "px-4",
)}
>
<div
className="flex flex-row items-center gap-3 mb-2"
onClick={handleSecretSuperListingAccess}
>
<HeaderIcon icon={Briefcase} />
<HeaderText>Job listings</HeaderText>
</div>
<HeaderTitle icon={Briefcase} onClick={handleSecretSuperListingAccess}>
Job listings
</HeaderTitle>
<div className="flex flex-col flex-1">
<div>
<div className="flex gap-4 mb-4">
Expand Down
7 changes: 2 additions & 5 deletions app/hire/forgot-password/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { EmployerUserService } from "@/lib/api/services";
import { cn } from "@/lib/utils";
import { useAppContext } from "@/lib/ctx-app";
import { AnimatePresence, motion } from "framer-motion";
import { HeaderIcon, HeaderText } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { HelpCircle, MailCheck } from "lucide-react";
import { useBlurTransition } from "@/components/animata/blur";

Expand Down Expand Up @@ -73,10 +73,7 @@ const ForgotPasswordForm = () => {
<AnimatePresence>
<motion.div {...blurTransition} className="w-full">
<Card className="flex flex-col gap-4">
<div className="flex flex-row items-center gap-3 mb-2">
<HeaderIcon icon={HelpCircle} />
<HeaderText>Reset password</HeaderText>
</div>
<HeaderTitle icon={HelpCircle}>Reset password</HeaderTitle>
{error && (
<div className="mb-2 p-3 bg-red-50 border border-red-200 rounded-lg">
<p className="text-sm text-red-600 justify-center">{error}</p>
Expand Down
7 changes: 2 additions & 5 deletions app/hire/help/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
} from "lucide-react";
import { AnimatePresence, motion } from "framer-motion";
import Link from "next/link";
import { HeaderIcon, HeaderText } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { useBlurTransition } from "@/components/animata/blur";
import {
EMPLOYER_GUIDE,
Expand Down Expand Up @@ -43,10 +43,7 @@ export default function HelpPage() {
)}
{...blurTransition}
>
<div className="flex flex-row items-center gap-3 mb-2">
<HeaderIcon icon={HelpCircle} />
<HeaderText>Help</HeaderText>
</div>
<HeaderTitle icon={HelpCircle}>Help</HeaderTitle>
<div className="grid gap-2 lg:grid-cols-3 md:grid-cols-2 sm:grid-cols-1">
<Card className="flex flex-col gap-2">
<h4 className="tracking-tighter">Contact us</h4>
Expand Down
7 changes: 2 additions & 5 deletions app/hire/login/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { Card } from "@/components/ui/card";
import { MailCheck, TriangleAlert, User } from "lucide-react";
import { Loader } from "@/components/ui/loader";
import { AnimatePresence, motion } from "framer-motion";
import { HeaderIcon, HeaderText } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { useBlurTransition } from "@/components/animata/blur";

export default function LoginPage() {
Expand Down Expand Up @@ -105,10 +105,7 @@ function LoginContent() {
<div className="flex items-center w-full max-w-2xl h-full">
<Card className="w-full">
{/* Welcome Message */}
<div className="flex flex-row items-center gap-3 mb-2">
<HeaderIcon icon={User} />
<HeaderText>Log in</HeaderText>
</div>
<HeaderTitle icon={User}>Log in</HeaderTitle>
{/* Error Message */}
{error && (
<div
Expand Down
7 changes: 2 additions & 5 deletions app/hire/register/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { useAppContext } from "@/lib/ctx-app";
import Link from "next/link";
import { TriangleAlert, User } from "lucide-react";
import { AnimatePresence, motion } from "framer-motion";
import { HeaderIcon, HeaderText } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { useBlurTransition } from "@/components/animata/blur";

const [EmployerRegisterForm, useEmployerRegisterForm] =
Expand Down Expand Up @@ -187,10 +187,7 @@ const EmployerEditor = ({
<AnimatePresence>
<motion.div {...blurTransition} className="w-full">
<Card>
<div className="flex flex-row items-center gap-3 mb-2">
<HeaderIcon icon={User} />
<HeaderText>Register</HeaderText>
</div>
<HeaderTitle icon={User}>Register</HeaderTitle>
{missingFields.length > 0 && (
<div
className={cn(
Expand Down
12 changes: 3 additions & 9 deletions app/hire/reset-password/[hash]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { cn } from "@/lib/utils";
import { useAppContext } from "@/lib/ctx-app";
import { HelpCircle, MailCheck } from "lucide-react";
import { AnimatePresence, motion } from "framer-motion";
import { HeaderIcon, HeaderText } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { useBlurTransition } from "@/components/animata/blur";

/**
Expand Down Expand Up @@ -111,10 +111,7 @@ const ResetPasswordForm = ({ hash }: { hash: string }) => {
style={{ width: `${redirectProgress}%` }}
/>
</div>
<div className="flex flex-row items-center gap-3 mb-2">
<HeaderIcon icon={MailCheck} />
<HeaderText>Password updated</HeaderText>
</div>
<HeaderTitle icon={MailCheck}>Password updated</HeaderTitle>
<div className="mb-2 flex items-center gap-2 rounded-[0.33em] bg-emerald-600 px-4 py-3 text-white">
<MailCheck className="h-5 w-5" />
<p className="text-sm text-white">{success}</p>
Expand All @@ -135,10 +132,7 @@ const ResetPasswordForm = ({ hash }: { hash: string }) => {
<AnimatePresence>
<motion.div {...blurTransition} className="w-full">
<Card className="flex flex-col gap-4 w-full">
<div className="flex flex-row items-center gap-3 mb-2">
<HeaderIcon icon={HelpCircle} />
<HeaderText>Reset password</HeaderText>
</div>
<HeaderTitle icon={HelpCircle}>Reset password</HeaderTitle>
{error && (
<div className="mb-4 p-3 bg-red-50 border border-red-200 rounded-lg">
<p className="text-sm text-red-600 justify-center">{error}</p>
Expand Down
15 changes: 13 additions & 2 deletions app/student/allowLanding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,23 @@ export default function AllowLanding({
}) {
const pathname = usePathname();
const isStudentLanding = pathname === "/";
const isChallengePage =
pathname.startsWith("/challenges/") ||
pathname.startsWith("/student/challenges/");
const hideSharedHeader =
isStudentLanding || pathname.startsWith("/companies/");
isStudentLanding || pathname.startsWith("/companies/") || isChallengePage;

if (hideSharedHeader) {
return (
<div className="min-h-full bg-gray-50 flex flex-col">{children}</div>
);
}

return (
<div className="h-[100svh] bg-gray-50 flex flex-col overflow-y-auto">
<Suspense>{!hideSharedHeader && <Header />}</Suspense>
<Suspense>
<Header />
</Suspense>
<div className="flex-grow overflow-auto flex flex-col">{children}</div>
</div>
);
Expand Down
7 changes: 2 additions & 5 deletions app/student/applications/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { Loader } from "@/components/ui/loader";
import { Card } from "@/components/ui/card";
import { JobHead, SuperListingBadge } from "@/components/shared/jobs";
import { UserApplication } from "@/lib/db/db.types";
import { HeaderText, HeaderIcon } from "@/components/ui/text";
import { HeaderTitle } from "@/components/ui/text";
import { Separator } from "@/components/ui/separator";
import { PageError } from "@/components/ui/error";
import { cn } from "@/lib/utils";
Expand Down Expand Up @@ -61,10 +61,7 @@ export default function ApplicationsPage() {
<div className="h-full overflow-y-auto py-6 px-4">
<div className="max-w-5xl mx-auto">
<div className="mb-6 sm:mb-8 animate-fade-in">
<div className="flex flex-row items-center gap-3 mb-2">
<HeaderIcon icon={BookA}></HeaderIcon>
<HeaderText>My Applications</HeaderText>
</div>
<HeaderTitle icon={BookA}>My Applications</HeaderTitle>
<div className="flex-1 flex-row">
<p className="text-gray-600 text-sm sm:text-base mb-2">
Track your internship applications and their status
Expand Down
Loading