From 8852326c34e23c3431256a6143e7da08554c3c08 Mon Sep 17 00:00:00 2001 From: Rizul Gupta Date: Wed, 19 Nov 2025 18:07:01 +0530 Subject: [PATCH] feat: Added OBC-PWD page --- app/[locale]/header.tsx | 22 +-- app/[locale]/institute/cells/obcpwd/page.tsx | 150 +++++++++++++++++++ app/[locale]/institute/page.tsx | 12 ++ i18n/en.ts | 24 ++- i18n/hi.ts | 24 +++ i18n/translations.ts | 15 ++ 6 files changed, 226 insertions(+), 21 deletions(-) create mode 100644 app/[locale]/institute/cells/obcpwd/page.tsx diff --git a/app/[locale]/header.tsx b/app/[locale]/header.tsx index c331566d..f84594f6 100644 --- a/app/[locale]/header.tsx +++ b/app/[locale]/header.tsx @@ -63,29 +63,11 @@ export default async function Header({ locale }: { locale: string }) { }, // For now IKS and IIC are added as temp units, will change this once a "CELL" design is ready { - title: 'IKS Cell', - href: '/institute/cells/iks', + title: 'Institute Cells', + href: '/institute#cells', description: 'Explore the minds that work hard to maintain our institute’s high reputation and proper functioning!', }, - { - title: 'IIC Cell', - href: '/institute/cells/iic', - description: - 'Explore the minds that work hard to maintain our institute’s high reputation and proper functioning!', - }, - { - title: 'IPR Cell', - href: '/institute/cells/ipr', - description: - 'The Intellectual Property Rights Cell promotes awareness and assists in protecting innovations, ideas, and creative works.', - }, - { - title: 'SC & ST Cell', - href: '/institute/cells/scst', - description: - 'The SC & ST Cell is dedicated to promoting the welfare and interests of students from Scheduled Castes and Scheduled Tribes, ensuring equal opportunities and support.', - } ], }, { diff --git a/app/[locale]/institute/cells/obcpwd/page.tsx b/app/[locale]/institute/cells/obcpwd/page.tsx new file mode 100644 index 00000000..036f0eda --- /dev/null +++ b/app/[locale]/institute/cells/obcpwd/page.tsx @@ -0,0 +1,150 @@ +import Image from 'next/image'; +import Link from 'next/link'; +import { MdEmail, MdOutlineLocalPhone } from 'react-icons/md'; + +import { cn } from '~/lib/utils'; +import { Button } from '~/components/buttons'; +import Heading from '~/components/heading'; +import { getTranslations } from '~/i18n/translations'; +import { getS3Url } from '~/server/s3'; + +export default async function OBCPWD({ + params: { locale }, +}: { + params: { locale: string }; +}) { + const text = await getTranslations(locale); + + const facultyIncharge = [ + {...text.Institute.cells.obcpwd.liaisonOfficer}, + ]; + const cellFunctions = text.Institute.cells.obcpwd.cellFunctions; + + return ( + <> + {/* Header */} +
+
+

+ {text.Institute.cells.obcpwd.title} +

+
+
+ +
+ {/* description */} +
+ {text.Institute.cells.obcpwd.description.map((paragraph, index) => ( +

+ {paragraph} +

+ ))} +
+ {/*cell functions*/} +
+ +
+
    + {cellFunctions.map((functionItem, index) => ( +
  • + + {functionItem} +
  • + ))} +
+
+
+ {text.Institute.cells.obcpwd.complaint} +
+
+ {/* LIAISON OFFICER */} +
+ +
    + {facultyIncharge.map((faculty, idx) => ( +
  • + {/* Image - smaller on mobile */} +
    + {faculty.name} +
    + + {/* Content section - adjusted for mobile row layout */} +
    + {/* Name in red - reduced margin bottom */} +

    + {faculty.name} +

    + + {/* Title and position - reduced spacing */} +
    {/* Reduced margin from mb-1/mb-2/mb-4 */} +

    {/* Added leading-tight */} + {faculty.title} +

    + {!faculty.title.includes("Head") && ( +

    {/* Added leading-tight and mt-0 */} + (Head of the Department) +

    + )} +
    + + {/* Contact info */} +
    + {/* Email with icon */} + + + + + + {faculty.email} + + + + {/* Phone with icon */} + + + + + + {faculty.phone} + + +
    +
    +
  • + ))} +
+
+ + {/* TODO: MAKE IT EXACTLY LIKE THE DESIGN , ADD RELEVENT BACKGROUND */} + +
+ + ); +} diff --git a/app/[locale]/institute/page.tsx b/app/[locale]/institute/page.tsx index 5297705c..543077c0 100644 --- a/app/[locale]/institute/page.tsx +++ b/app/[locale]/institute/page.tsx @@ -318,6 +318,18 @@ export default async function Institute({ icon: MdPhotoLibrary, annotation: '(IIC)', }, + { + label: text.cells.scst.title, + href: `/${locale}/institute/cells/scst`, + icon: MdPhotoLibrary, + annotation: '(SC & ST)', + }, + { + label: text.cells.obcpwd.title, + href: `/${locale}/institute/cells/obcpwd`, + icon: MdPhotoLibrary, + annotation: '(OBC & PWD)', + }, ].map(({ label, href, icon: Icon, annotation }, index) => (