Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Prettier
  • Loading branch information
RoyEJohnson committed Sep 6, 2025
commit c89debcd2f1cc152c9a1c68c19e470c7a16f3c33
45 changes: 29 additions & 16 deletions src/app/pages/global-reach/global-reach.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,30 @@ type ProcessedData = {
section1: {cards: CardData[]};
section2: StudentData;
section3: Parameters<typeof SchoolMap>[0];
}
};

function preprocessData(data: RawData) {
return camelCaseKeys(
Object.keys(data).reduce((result, key) => {
const value = data[key];
const matches = key.match(/(section_.)_(.*)/);
Object.keys(data).reduce(
(result, key) => {
const value = data[key];
const matches = key.match(/(section_.)_(.*)/);

if (matches) {
const [_, sectionKey, newKey] = matches;
if (matches) {
const [_, sectionKey, newKey] = matches;

if (!(sectionKey in result)) {
result[sectionKey] = {};
if (!(sectionKey in result)) {
result[sectionKey] = {};
}
(result[sectionKey] as Record<string, Json>)[newKey] =
value;
} else {
result[key] = value;
}
(result[sectionKey] as Record<string, Json>)[newKey] = value;
} else {
result[key] = value;
}
return result;
}, {} as Record<string, Json>)
return result;
},
{} as Record<string, Json>
)
) as ProcessedData;
}

Expand All @@ -42,7 +46,11 @@ function GlobalReachPage({data}: {data: RawData}) {

return (
<React.Fragment>
<Map title={ppData.title} buttonText={ppData.headerText} imageUrl={ppData.mapImageUrl} />
<Map
title={ppData.title}
buttonText={ppData.headerText}
imageUrl={ppData.mapImageUrl}
/>
<Statistics {...ppData.section1} />
<StudentInfo {...ppData.section2} />
<SchoolMap {...ppData.section3} />
Expand All @@ -55,7 +63,12 @@ const slug = 'pages/global-reach';
export default function GlobalReachLoader() {
return (
<main className="global-reach page">
<LoaderPage slug={slug} Child={GlobalReachPage} noCamelCase doDocumentSetup />
<LoaderPage
slug={slug}
Child={GlobalReachPage}
noCamelCase
doDocumentSetup
/>
</main>
);
}
11 changes: 9 additions & 2 deletions src/app/pages/global-reach/map/map.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
import React from 'react';
import './map.scss';

export default function Map({title, buttonText, imageUrl}: {
export default function Map({
title,
buttonText,
imageUrl
}: {
title: string;
buttonText: string;
imageUrl: string;
}) {
return (
<div className="mapbox">
<div className="map-image" style={{backgroundImage: `url(${imageUrl})`}}></div>
<div
className="map-image"
style={{backgroundImage: `url(${imageUrl})`}}
></div>
<div className="overlay">
<div className="boxed">
<h1>{title}</h1>
Expand Down
14 changes: 12 additions & 2 deletions src/app/pages/global-reach/schoolmap/schoolmap.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@ import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
import {faChevronRight} from '@fortawesome/free-solid-svg-icons/faChevronRight';
import './schoolmap.scss';

export default function SchoolMap({heading, blurb, link: linkUrl, cta: linkText}: {
export default function SchoolMap({
heading,
blurb,
link: linkUrl,
cta: linkText
}: {
heading: string;
blurb: string;
link: string;
Expand All @@ -22,7 +27,12 @@ export default function SchoolMap({heading, blurb, link: linkUrl, cta: linkText}
</span>
</div>
</div>
<div><img className="map-img" src="/dist/images/home/map2.webp" /></div>
<div>
<img
className="map-img"
src="/dist/images/home/map2.webp"
/>
</div>
</div>
</div>
);
Expand Down
12 changes: 9 additions & 3 deletions src/app/pages/global-reach/statistics/stat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,17 @@ export type CardData = {
number: string;
unit: string;
description: string;
}
};

function Card({item}: {item: CardData}) {
return (
<div className="col1">
<div className="col-img-div">
<img className="col-img" src={item.image.image} alt={item.image.altText} />
<img
className="col-img"
src={item.image.image}
alt={item.image.altText}
/>
</div>
<div className="col-txt">
<div className="upper-txt">
Expand All @@ -32,7 +36,9 @@ export default function Statistics({cards}: {cards: CardData[]}) {
return (
<div className="stat-bg">
<div className="statbox">
{cards.map((card) => <Card item={card} key={card.description} />)}
{cards.map((card) => (
<Card item={card} key={card.description} />
))}
</div>
</div>
);
Expand Down
22 changes: 17 additions & 5 deletions src/app/pages/global-reach/studentinfo/studentinfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,29 @@ export type StudentData = {
cta2: string;
link2: string;
image2Url: string;
}
};

export default function StudentInfo({
header1, blurb1, cta1, link1, image1Url,
header2, blurb2, cta2, link2, image2Url
header1,
blurb1,
cta1,
link1,
image1Url,
header2,
blurb2,
cta2,
link2,
image2Url
}: StudentData) {
return (
<div className="studentinfobox">
<div className="photo-and-text">
<div>
<div className="girl-txt-head">{header1}</div>
<p>{blurb1}</p>
<a href={link1} className="sbox">{cta1}</a>
<a href={link1} className="sbox">
{cta1}
</a>
</div>
<img className="girl-img" src={image1Url} alt="Student" />
</div>
Expand All @@ -34,7 +44,9 @@ export default function StudentInfo({
<div className="first-in-mobile">
<div className="std-txt-head">{header2}</div>
<p>{blurb2}</p>
<a href={link2} className="sbox">{cta2}</a>
<a href={link2} className="sbox">
{cta2}
</a>
</div>
</div>
</div>
Expand Down