@@ -212,10 +212,48 @@ const ProjectCard = React.forwardRef<HTMLDivElement, ProjectCardProps>(
212212 </ div >
213213 </ div >
214214
215+ { /* Likes and View Project Button */ }
216+ < div className = "flex items-center justify-between pt-6" >
217+ < Button
218+ onClick = { ( e ) => {
219+ if ( onViewProject ) {
220+ e . preventDefault ( ) ;
221+ onViewProject ( href ) ;
222+ }
223+ } }
224+ asChild = { ! onViewProject }
225+ className = { cn (
226+ "h-11 rounded-md px-8 cursor-pointer" ,
227+ "bg-primary text-primary-foreground" ,
228+ "hover:bg-primary/90"
229+ ) }
230+ >
231+ { onViewProject ? (
232+ < span className = "flex items-center" >
233+ View Project < ArrowRight className = "ml-2 h-4 w-4" />
234+ </ span >
235+ ) : (
236+ < Link href = { href } >
237+ View Project < ArrowRight className = "ml-2 h-4 w-4" />
238+ </ Link >
239+ ) }
240+ </ Button >
241+ < div className = "flex items-center gap-6" >
242+ < div className = "flex items-center gap-2" >
243+ < Heart
244+ className = "h-5 w-5 text-destructive fill-destructive" // Use destructive red
245+ />
246+ < span className = "text-lg font-bold text-foreground" >
247+ { likes }
248+ </ span >
249+ </ div >
250+ </ div >
251+ </ div >
252+
215253 { /* Tech Stack Section (shown on hover for desktop, on click for mobile) */ }
216254 { techStack . length > 0 && (
217255 < div className = { cn (
218- "transition-all duration-500 ease-in-out overflow-hidden" ,
256+ "transition-all duration-300 ease-in-out overflow-hidden" ,
219257 ! isMobile && "opacity-0 max-h-0 group-hover:opacity-100 group-hover:max-h-96 group-hover:mt-8 group-hover:mb-6" ,
220258 isMobile && ( isExpanded ? "opacity-100 max-h-96 mt-8 mb-6" : "opacity-0 max-h-0" )
221259 ) } >
@@ -258,57 +296,7 @@ const ProjectCard = React.forwardRef<HTMLDivElement, ProjectCardProps>(
258296 </ div >
259297 ) }
260298
261- { /* Bottom Section: Stats and Button (shown on hover for desktop, on click for mobile) */ }
262- < div className = { cn (
263- "pt-6 border-t border-border transition-all duration-500 ease-in-out overflow-hidden" ,
264- ! isMobile && "opacity-0 max-h-0 group-hover:opacity-100 group-hover:max-h-32" ,
265- isMobile && ( isExpanded ? "opacity-100 max-h-32" : "opacity-0 max-h-0" )
266- ) } >
267- < div className = "flex items-center justify-between" >
268- < div className = "flex items-center gap-6" >
269- < div className = "flex items-center gap-2" >
270- < Heart
271- className = "h-5 w-5 text-destructive fill-destructive" // Use destructive red
272- />
273- < span className = "text-lg font-bold text-foreground" >
274- { likes }
275- </ span >
276- < span className = "text-muted-foreground text-sm" > Likes</ span >
277- </ div >
278- { /* <div className="flex items-center gap-2">
279- <MessageCircle className="h-5 w-5 text-blue-400" />
280- <span className="text-lg font-bold text-foreground">
281- {comments}
282- </span>
283- <span className="text-muted-foreground text-sm">Comments</span>
284- </div> */ }
285- </ div >
286- < Button
287- onClick = { ( e ) => {
288- if ( onViewProject ) {
289- e . preventDefault ( ) ;
290- onViewProject ( href ) ;
291- }
292- } }
293- asChild = { ! onViewProject }
294- className = { cn (
295- "h-11 rounded-md px-8 cursor-pointer" ,
296- "bg-primary text-primary-foreground" ,
297- "hover:bg-primary/90"
298- ) }
299- >
300- { onViewProject ? (
301- < span className = "flex items-center" >
302- View Project < ArrowRight className = "ml-2 h-4 w-4" />
303- </ span >
304- ) : (
305- < Link href = { href } >
306- View Project < ArrowRight className = "ml-2 h-4 w-4" />
307- </ Link >
308- ) }
309- </ Button >
310- </ div >
311- </ div >
299+
312300 </ div >
313301 </ div >
314302 ) ;
0 commit comments