From a6134cb32a081b851b613fbb9d45adf7f10fdcc6 Mon Sep 17 00:00:00 2001 From: euxzy Date: Mon, 28 Jul 2025 20:45:29 +0700 Subject: [PATCH] feat(dimentorin): slicing landing - articles page --- ...e8a682dfbe42455613ea07477ff3e30532c1f.webp | Bin 0 -> 30338 bytes .../articles/_components/card/article.tsx | 72 +++++++++++ .../src/app/(public)/articles/page.tsx | 122 ++++++++++++++++++ apps/dimentorin/src/middleware.ts | 5 +- 4 files changed, 197 insertions(+), 2 deletions(-) create mode 100644 apps/dimentorin/public/image/59de8a682dfbe42455613ea07477ff3e30532c1f.webp create mode 100644 apps/dimentorin/src/app/(public)/articles/_components/card/article.tsx create mode 100644 apps/dimentorin/src/app/(public)/articles/page.tsx diff --git a/apps/dimentorin/public/image/59de8a682dfbe42455613ea07477ff3e30532c1f.webp b/apps/dimentorin/public/image/59de8a682dfbe42455613ea07477ff3e30532c1f.webp new file mode 100644 index 0000000000000000000000000000000000000000..ad2aa3a030172510ef8b082d3878443e4474c1ca GIT binary patch literal 30338 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 JumAu6004fEe&YZD literal 0 HcmV?d00001 diff --git a/apps/dimentorin/src/app/(public)/articles/_components/card/article.tsx b/apps/dimentorin/src/app/(public)/articles/_components/card/article.tsx new file mode 100644 index 0000000..947a388 --- /dev/null +++ b/apps/dimentorin/src/app/(public)/articles/_components/card/article.tsx @@ -0,0 +1,72 @@ +import { Button } from "@imphnen-frontend-service/ui/atoms" +import { cn, Show } from "@imphnen-frontend-service/utils" +import { FC } from "react" + +export type ArticleCardProps = { + variant?: "default" | "recent" | "featured" +} + +export const ArticleCard: FC = ({ variant = 'default' }) => { + return ( +
+
+ Cover's Article +
+ +
+
+ 5 min read +
+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. +

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut et massa mi. Aliquam in hendrerit urna. Pellentesque sit amet sapien fringilla, mattis ligula consectetur, ultrices mauris. +

+
+
+

Writer’s Name

+

14 March 2025

+
+ + + + +
+
+ ) +} diff --git a/apps/dimentorin/src/app/(public)/articles/page.tsx b/apps/dimentorin/src/app/(public)/articles/page.tsx new file mode 100644 index 0000000..51c09ec --- /dev/null +++ b/apps/dimentorin/src/app/(public)/articles/page.tsx @@ -0,0 +1,122 @@ +import { ReactElement, useRef, useState } from "react"; +import { ArticleCard } from "./_components/card/article"; +import { cn, For } from "@imphnen-frontend-service/utils"; +import { Button } from "@imphnen-frontend-service/ui/atoms"; +import { motion, useInView, Variants } from "framer-motion"; + +const CATEGORIES = ['UI/UX Design', 'Software/Web Dev', 'Data & AI', 'Cloud & DevOps', 'Cybersecurity', 'IT & Network', 'Project Management', 'QA & Testing'] as const +type Category = typeof CATEGORIES[number] + +export default function Components(): ReactElement { + const [activeTab, setActiveTab] = useState('UI/UX Design') + + const ref = useRef(null) + const isInView = useInView(ref, { once: true, amount: 0.2 }) + + const containerVariants: Variants = { + hidden: { opacity: 0 }, + visible: { + opacity: 1, + transition: { + staggerChildren: 0.1, + delayChildren: 0.2, + }, + }, + } + + const childVariants: Variants = { + hidden: { opacity: 0, y: 20 }, + visible: { + opacity: 1, + y: 0, + transition: { + duration: 0.4, + ease: [0.25, 0.46, 0.45, 0.94], + }, + }, + } + + return ( +
+ +
+ + Featuring Articles + + +
+ + + + +
+ + Recent Articles + +
+ + {(_, index) => ( + + + + )} + +
+
+
+
+ +
+ + Category + +
+ + + {(category) => ( + + )} + + +
+ +
+ + {(_, index) => ( + + + + )} + +
+
+
+
+ ) +} diff --git a/apps/dimentorin/src/middleware.ts b/apps/dimentorin/src/middleware.ts index 98833db..c797561 100644 --- a/apps/dimentorin/src/middleware.ts +++ b/apps/dimentorin/src/middleware.ts @@ -16,7 +16,8 @@ const mappingPublicRoutes = [ '/auth/new-password', '/auth/register-mentor', '/auth/register-mentor/pending', - '/auth/register-mentor/success' + '/auth/register-mentor/success', + '/resources', ]; const mappingRoutePermissions = [ @@ -76,7 +77,7 @@ const mappingRoutePermissions = [ const mappingPublicPrefixRoutes = [ '/mentoring', - '/resources', + '/articles', ] //TODO : Fix this later