Skip to content

Commit 88d1fab

Browse files
committed
feat: banner for freshers
1 parent 94ae8dd commit 88d1fab

4 files changed

Lines changed: 53 additions & 5 deletions

File tree

src/app/layout.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import type { Metadata } from "next";
77
import Navbar from "@/components/Navbar";
88
import Footer from "@/components/Footer";
99
import ChildrenWrapper from "@/components/ChildrenWrapper";
10-
1110
export const metadata: Metadata = {
1211
metadataBase: new URL("https://papers.codechefvit.com/"),
1312
title: "Papers by CodeChef-VIT | Explore VIT Previous Year Question Papers",

src/components/FloatingNavbar.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default function FloatingNavbar({ onNavigate }: Props) {
1515
const [isOpen, setIsOpen] = useState(false);
1616

1717
return (
18-
<div className="fixed right-6 top-2 flex flex-col items-end h-full pointer-events-none">
18+
<div className="flex flex-col items-end h-full pointer-events-none">
1919
{}
2020
<button
2121
className="mt-[1.25rem] flex h-10 w-10 items-center justify-center rounded-full bg-[#4B22D1] text-white shadow-lg transition-transform duration-200 hover:scale-105 active:scale-95 pointer-events-auto"
@@ -29,7 +29,7 @@ export default function FloatingNavbar({ onNavigate }: Props) {
2929

3030
{}
3131
{isOpen && (
32-
<div className="mt-2 flex flex-col items-center gap-4 rounded-3xl bg-[#110F18] px-6 py-6 shadow-xl ring-1 ring-white/5 pointer-events-auto">
32+
<div className="absolute top-20 mt-2 flex flex-col items-center gap-4 rounded-3xl bg-[#110F18] px-6 py-6 shadow-xl ring-1 ring-white/5 pointer-events-auto">
3333
<Link
3434
href={pathname === "/upload" ? "/" : "/upload"}
3535
onClick={() => {

src/components/FreshersBanner.tsx

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
"use client";
2+
3+
import { Info, X } from "lucide-react";
4+
import { useEffect, useState } from "react";
5+
6+
export default function Banner() {
7+
const [visible, setVisible] = useState(true);
8+
9+
useEffect(() => {
10+
const bannerStatus = localStorage.getItem("banner");
11+
if (bannerStatus === "freshers") {
12+
setVisible(false);
13+
}
14+
}, []);
15+
16+
const closeBanner = () => {
17+
localStorage.setItem("banner", "freshers");
18+
setVisible(false);
19+
};
20+
21+
if (!visible) return null;
22+
23+
return (
24+
<div className="z-[60] w-full bg-[#fef3c7] text-[#5a3000] shadow-sm">
25+
<div className="relative mx-auto flex max-w-screen-2xl flex-col items-start justify-between gap-3 px-4 py-3 sm:justify-center sm:flex-row sm:items-center sm:gap-4 md:px-8 md:py-3">
26+
<div className="flex items-center gap-2">
27+
<Info className="h-5 w-5 text-[#d97706]" />
28+
<span className="font-semibold text-base tracking-wide text-[#78350f]">
29+
Attention Freshers!
30+
</span>
31+
</div>
32+
33+
<p className="text-sm text-[#5a3000] sm:text-right flex-1">
34+
If papers for your subject are not yet available, click on your subject and explore related subjects until papers become available, as these are newly introduced courses.
35+
</p>
36+
37+
<button
38+
onClick={closeBanner}
39+
className="absolute right-4 top-4 text-[#78350f] hover:text-[#a84b0f] transition sm:static sm:self-start"
40+
aria-label="Dismiss banner"
41+
>
42+
<X className="h-5 w-5" />
43+
</button>
44+
</div>
45+
</div>
46+
);
47+
}

src/components/Navbar.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { ArrowDownLeftIcon, Pin, ArrowUpRight, ChevronDown } from "lucide-react"
1010
import FloatingNavbar from "./FloatingNavbar";
1111
import PWAInstallButton from "./ui/PWAInstallButton";
1212
import SearchBarChild from "./Searchbar/searchbar-child";
13+
import FresherBanner from "@/components/FreshersBanner"
1314
import type { ICourses } from "@/interface";
1415
import {
1516
DropdownMenu,
@@ -90,8 +91,9 @@ function Navbar() {
9091
);
9192

9293
return (
93-
<div className="sticky top-0 z-[50] w-full bg-[#B2B8FF] px-4 py-4 dark:bg-[#130E1F] md:px-8 md:py-5">
94-
<div className="flex items-center justify-between">
94+
<div className="sticky top-0 z-[50] w-full bg-[#B2B8FF] dark:bg-[#130E1F]">
95+
<FresherBanner/>
96+
<div className="flex items-center justify-between bg-inherit px-4 py-4 md:px-8 md:py-5">
9597
{}
9698
<div className="flex items-center gap-4 relative">
9799
<Link href="https://www.codechefvit.com/" target="_blank">

0 commit comments

Comments
 (0)