11import { useEffect , useState } from "react" ;
22import { useParams } from "react-router" ;
3- import { JsonData } from "./types" ;
3+ import { JsonData , Entry } from "./types" ;
44import ResourceCard from "./ResourceCard" ;
5+ import { sortEntries } from "./utils" ;
56
67const ResourcePage = ( ) => {
78 const { category } = useParams ( ) ;
89 const [ data , setData ] = useState < JsonData | null > ( null ) ;
10+ const [ entries , setEntries ] = useState < Entry [ ] > ( [ ] ) ;
911
1012 useEffect ( ( ) => {
1113 const fetchData = async ( ) => {
@@ -19,14 +21,14 @@ const ResourcePage = () => {
1921 }
2022 } ;
2123
22- fetchData ( ) . then (
23- ( json ) => {
24- setData ( json ) ;
25- } ,
26- ( ) => {
27- setData ( { pageName : "" , entries : [ ] } ) ;
28- } ,
29- ) ;
24+ fetchData ( )
25+ . then ( ( json ) => {
26+ if ( json . entries . length > 0 ) {
27+ setData ( json ) ;
28+ setEntries ( sortEntries ( json . entries ) ) ;
29+ }
30+ } )
31+ . catch ( console . error ) ;
3032 } , [ category ] ) ;
3133
3234 if ( data ) {
@@ -38,7 +40,7 @@ const ResourcePage = () => {
3840 </ h3 >
3941 < div className = "flex w-full justify-center" >
4042 < div className = "mx-4 flex flex-wrap justify-center gap-6 sm:w-5/6 xl:w-3/4" >
41- { data . entries . map ( ( e ) => (
43+ { entries . map ( ( e ) => (
4244 < ResourceCard entry = { e } key = { e . title } />
4345 ) ) }
4446 </ div >
@@ -47,5 +49,7 @@ const ResourcePage = () => {
4749 </ >
4850 ) ;
4951 }
52+
53+ return < > </ > ;
5054} ;
5155export default ResourcePage ;
0 commit comments