File tree Expand file tree Collapse file tree 4 files changed +70
-2
lines changed
Expand file tree Collapse file tree 4 files changed +70
-2
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import { Projects } from "@/components/sections/Projects";
66import { HashRouter , Route , Routes , useLocation } from "react-router" ;
77import ProjectDetails from "./components/pages/project-details" ;
88import { useEffect } from "react" ;
9+ import Apps from "./components/pages/apps" ;
910
1011function Root ( ) {
1112 const { state } = useLocation ( ) ;
@@ -36,6 +37,7 @@ function App() {
3637 < Routes >
3738 < Route path = "/" element = { < Root /> } />
3839 < Route path = "/projects/:id" element = { < ProjectDetails /> } />
40+ < Route path = "/apps" element = { < Apps /> } />
3941 </ Routes >
4042 </ div >
4143 </ main >
Original file line number Diff line number Diff line change 1+ import { useNavigate } from "react-router" ;
2+
3+ const apps = [
4+ {
5+ title : "Rep" ,
6+ description :
7+ "Workout tracker built to work offline and sync with your friends." ,
8+ image : "/src/assets/rep-icon.png" ,
9+ } ,
10+ {
11+ title : "Dash" ,
12+ description :
13+ "Running tracker built to work offline and sync with your friends." ,
14+ image : "/src/assets/dash-icon.png" ,
15+ } ,
16+ ] ;
17+
18+ const Apps = ( ) => {
19+ const navigate = useNavigate ( ) ;
20+
21+ return (
22+ < div className = "min-h-screen py-20" >
23+ < div className = "flex flex-col px-6" >
24+ < h1 className = "text-4xl md:text-5xl font-bold mb-4 tracking-tight" >
25+ Apps
26+ </ h1 >
27+ < p className = "text-base text-muted-foreground mb-8" >
28+ Here are some of the apps I've worked on.
29+ </ p >
30+ </ div >
31+ < div className = "grid sm:grid-cols-2 lg:grid-cols-3 gap-6" >
32+ { apps . map ( ( app ) => (
33+ < div
34+ key = { app . title }
35+ className = "flex flex-row cursor-pointer hover:bg-accent dark:hover:bg-input/20 p-6 gap-6 rounded-xl"
36+ onClick = { ( ) => navigate ( `/apps/${ app . title } ` ) }
37+ >
38+ < div className = "flex flex-col gap-1 items-center justify-center" >
39+ < div className = "relative rounded-lg overflow-hidden bg-muted w-16 h-16" >
40+ < img
41+ src = { app . image }
42+ alt = { app . title }
43+ className = "object-cover w-full h-full object-center"
44+ />
45+ </ div >
46+ < p className = "text-xs text-muted-foreground" > { app . title } </ p >
47+ </ div >
48+ < div className = "flex flex-col gap-2" >
49+ < h1 className = "text-xl" > { app . title } </ h1 >
50+ < p className = "line-clamp-3 text-sm text-muted-foreground" >
51+ { app . description }
52+ </ p >
53+ </ div >
54+ </ div >
55+ ) ) }
56+ </ div >
57+ </ div >
58+ ) ;
59+ } ;
60+
61+ export default Apps ;
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ import { Button } from "@/components/ui/button";
22import { Badge } from "@/components/ui/badge" ;
33
44import { motion } from "framer-motion" ;
5- import { Code , MoveRight } from "lucide-react" ;
5+ import { ArrowRight , Code , MoveRight } from "lucide-react" ;
66import { useNavigate } from "react-router" ;
77import { useProjects } from "@/hooks/useProjects" ;
88
@@ -105,13 +105,18 @@ export function Projects() {
105105 whileInView = { { opacity : 1 } }
106106 transition = { { duration : 0.5 , delay : 0.2 } }
107107 viewport = { { once : true } }
108+ className = "flex flex-row justify-between px-6 mb-12"
108109 >
109- < div className = "flex flex-col gap-2 px-6 mb-12 " >
110+ < div className = "flex flex-col gap-2" >
110111 < h2 className = "text-3xl font-bold" > Other Projects</ h2 >
111112 < p className = "text-muted-foreground text-lg" >
112113 Additional projects I've worked on
113114 </ p >
114115 </ div >
116+ < Button variant = "link" onClick = { ( ) => navigate ( "/apps" ) } >
117+ View All Apps
118+ < ArrowRight />
119+ </ Button >
115120 </ motion . div >
116121
117122 < div className = "grid sm:grid-cols-2 lg:grid-cols-3 gap-6" >
You can’t perform that action at this time.
0 commit comments