File tree Expand file tree Collapse file tree 1 file changed +21
-3
lines changed
Expand file tree Collapse file tree 1 file changed +21
-3
lines changed Original file line number Diff line number Diff line change 1- import { useState } from 'react' ;
1+ import { useMemo , useState } from 'react' ;
22import { useNavigate } from 'react-router-dom' ;
33import { useTranslation } from 'react-i18next' ;
44import {
@@ -41,6 +41,24 @@ export function ProjectsPage() {
4141 navigate ( `/projects/${ id } ` ) ;
4242 } ;
4343
44+ const sortedProjects = useMemo ( ( ) => {
45+ if ( ! projects ) {
46+ return undefined ;
47+ }
48+ return projects . slice ( ) . sort ( ( a , b ) => {
49+ const timeA = Number . isFinite ( new Date ( a . createdAt ) . getTime ( ) )
50+ ? new Date ( a . createdAt ) . getTime ( )
51+ : 0 ;
52+ const timeB = Number . isFinite ( new Date ( b . createdAt ) . getTime ( ) )
53+ ? new Date ( b . createdAt ) . getTime ( )
54+ : 0 ;
55+ if ( timeA !== timeB ) {
56+ return timeA - timeB ;
57+ }
58+ return a . id - b . id ;
59+ } ) ;
60+ } , [ projects ] ) ;
61+
4462 return (
4563 < div className = "flex flex-col h-full bg-background" >
4664 < PageHeader
@@ -89,9 +107,9 @@ export function ProjectsPage() {
89107 < div className = "flex items-center justify-center p-12" >
90108 < Loader2 className = "h-8 w-8 animate-spin text-accent" />
91109 </ div >
92- ) : projects && projects . length > 0 ? (
110+ ) : sortedProjects && sortedProjects . length > 0 ? (
93111 < div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4" >
94- { projects . map ( ( project ) => (
112+ { sortedProjects . map ( ( project ) => (
95113 < Card
96114 key = { project . id }
97115 className = "group border-border bg-surface-primary cursor-pointer hover:border-accent/50 hover:shadow-card-hover transition-all duration-200 flex flex-col"
You can’t perform that action at this time.
0 commit comments