@@ -6,15 +6,25 @@ import ambassadorList from '~/data/ambassadors-contributions.json';
66import ambassadorsBanner from '~/public/img/community/ambassadors.png' ;
77
88import Image from 'next/image' ;
9-
109import fs from 'fs' ;
10+ import path from 'path' ;
1111
1212import AmbassadorBanner from '~/components/AmbassadorsBanner' ;
1313import AmbassadorCard , { type Ambassador } from '~/components/AmbassadorsCard' ;
1414import AmbassadorList from '~/components/AmbassadorsList' ;
1515
1616export async function getStaticProps ( ) {
17- const ambassadorData = fs . readFileSync ( 'data/ambassadors.json' , 'utf-8' ) ;
17+ // Use an absolute path to correctly resolve the JSON file location
18+ const filePath = path . join (
19+ process . cwd ( ) ,
20+ '_includes' ,
21+ 'community' ,
22+ 'programs' ,
23+ 'ambassadors' ,
24+ 'ambassadors.json' ,
25+ ) ;
26+ const fileContents = fs . readFileSync ( filePath , 'utf-8' ) ;
27+ const ambassadorData = JSON . parse ( fileContents ) ;
1828
1929 return {
2030 props : {
@@ -23,10 +33,10 @@ export async function getStaticProps() {
2333 } ;
2434}
2535
26- export default function ambassadorPages ( {
36+ export default function AmbassadorPages ( {
2737 ambassadorData,
2838} : {
29- ambassadorData : any ;
39+ ambassadorData : Ambassador [ ] ;
3040} ) {
3141 return (
3242 < SectionContext . Provider value = 'ambassador' >
@@ -48,7 +58,7 @@ export default function ambassadorPages({
4858 >
4959 Become a JSON Schema Ambassador
5060 </ h1 >
51- < p className = 'mt-5 text-slate-700 text-lg dark:text-slate-100' >
61+ < p className = 'mt-5 text-slate-700 text-lg dark:text-slate-100' >
5262 The JSON Schema Ambassadors Program recognizes the people who
5363 drive adoption, innovation, and knowledge sharing in the JSON
5464 Schema community.
@@ -100,13 +110,11 @@ export default function ambassadorPages({
100110 </ p >
101111 </ h2 >
102112 </ section >
103- < div className = ' flex justify-center container m-auto p-auto' >
113+ < div className = 'flex justify-center container m-auto p-auto' >
104114 < div className = 'grid md:grid-cols-2 lg:grid-cols-3 gap-6' >
105- { JSON . parse ( ambassadorData ) . map (
106- ( ambassador : Ambassador , index : number ) => (
107- < AmbassadorCard key = { index } ambassador = { ambassador } />
108- ) ,
109- ) }
115+ { ambassadorData . map ( ( ambassador : Ambassador , index : number ) => (
116+ < AmbassadorCard key = { index } ambassador = { ambassador } />
117+ ) ) }
110118 </ div >
111119 </ div >
112120 < div className = 'flex justify-center p-auto' >
@@ -117,4 +125,4 @@ export default function ambassadorPages({
117125 ) ;
118126}
119127
120- ambassadorPages . getLayout = getLayout ;
128+ AmbassadorPages . getLayout = getLayout ;
0 commit comments