From b424e4136070297c53f8b3c0679d7e9884246eb6 Mon Sep 17 00:00:00 2001 From: oumeimaelisbihani Date: Mon, 15 Apr 2024 17:05:05 +0200 Subject: [PATCH 1/9] first step : component dashboardsection created needs to be highly reusable --- src/app/dashboard/page.tsx | 55 ++++++++++++++++++++++++++++- src/components/DashboardSection.tsx | 22 ++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 src/components/DashboardSection.tsx diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 46f735bde..5f68952aa 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -1,13 +1,19 @@ 'use client'; +import clsx from 'clsx'; import * as React from 'react'; import '@/lib/env'; -import clsx from 'clsx'; + +import DashboardSection from '@/components/DashboardSection'; const DashboardPage = () => { return ( <> + + + + ); } @@ -23,3 +29,50 @@ const IntroSection = () => { ) }; + +const GlobalTrendSection = () => { + return ( +
+ +
+ ) +}; + +const SalmonCollapseSection = () => { + return ( +
+ +
+ ) +} + +const SalmonFarmingSection = () => { + return ( +
+ +
+ ) +} + +const TopCountriesSection = () => { + return ( +
+ +
+ ) +} diff --git a/src/components/DashboardSection.tsx b/src/components/DashboardSection.tsx new file mode 100644 index 000000000..5968ff60f --- /dev/null +++ b/src/components/DashboardSection.tsx @@ -0,0 +1,22 @@ +import clsx from 'clsx'; +import React, { Component } from 'react' + +const DashboardSection = ({ + className, + title, + content, + chart +}: { + className?: string; + title: string; + content: string; + chart: Component +}) => { + return ( +
+

{title}

+

{content}

+
+ ); +}; +export default DashboardSection From 508fd41bb9b55969cfba666fa8288fb7d669b00b Mon Sep 17 00:00:00 2001 From: Thomas Catinaud Taris Date: Wed, 24 Apr 2024 10:57:14 +0200 Subject: [PATCH 2/9] feat: update home styles + open graph image --- public/images/explose-small.svg | 15 +++--- public/images/og.jpg | Bin 0 -> 28234 bytes src/app/page.tsx | 90 ++++++++++++++++--------------- src/app/to-act/page.tsx | 15 ++++++ src/components/Edito.tsx | 16 ++++-- src/components/IconCard.tsx | 6 ++- src/components/IntroBlock.tsx | 2 +- src/components/JoinBlock.tsx | 6 +-- src/components/layout/Navbar.tsx | 6 ++- tailwind.config.ts | 2 +- 10 files changed, 98 insertions(+), 60 deletions(-) create mode 100644 public/images/og.jpg create mode 100644 src/app/to-act/page.tsx diff --git a/public/images/explose-small.svg b/public/images/explose-small.svg index bdcb4528c..fd217aca9 100644 --- a/public/images/explose-small.svg +++ b/public/images/explose-small.svg @@ -3,16 +3,17 @@ - - + - - diff --git a/public/images/og.jpg b/public/images/og.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d925734ba00a680a79874f2d9794aade97bfcd92 GIT binary patch literal 28234 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 { return ( -
-
+
+
{ const ExplodeSection = () => { return ( -
-
    +
    +

    + The salmon industry is a bomb with multiple impacts +

    +
      -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    + > +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
); }; @@ -125,6 +130,7 @@ const EditoSection = () => { small: "/images/storytelling/health-400.jpg", medium: "/images/storytelling/health-600.jpg", large: "/images/storytelling/health-1200.jpg", + caption: "Photo credit: Ramji / Bob Brown Foundation", }, }, { diff --git a/src/app/to-act/page.tsx b/src/app/to-act/page.tsx new file mode 100644 index 000000000..0979e5cd7 --- /dev/null +++ b/src/app/to-act/page.tsx @@ -0,0 +1,15 @@ +"use client"; + +import * as React from "react"; +import "@/lib/env"; +import IntroBlock from "@/components/IntroBlock"; + +const ToActPage = () => { + return ( + <> + + + ); +}; + +export default ToActPage; diff --git a/src/components/Edito.tsx b/src/components/Edito.tsx index d120e590d..bd97bbe24 100644 --- a/src/components/Edito.tsx +++ b/src/components/Edito.tsx @@ -66,10 +66,17 @@ const IconCard = ({
- + {image.small && ( )} @@ -82,9 +89,12 @@ const IconCard = ({ width={600} height={600} alt="" + className="w-full" /> - {image.caption &&
{image.caption}
} + {image.caption && ( +
{image.caption}
+ )}
) : null}
diff --git a/src/components/IconCard.tsx b/src/components/IconCard.tsx index 5458f4a35..6bd5162a5 100644 --- a/src/components/IconCard.tsx +++ b/src/components/IconCard.tsx @@ -29,8 +29,10 @@ const IconCard = ({ className="max-[767px]:w-12 max-[767px]:h-12 max-[1023px]:w-24 max-[1023px]:h-24 object-contain" /> ) : null} -

{title}

-

{content}

+

{title}

+

+ {content} +

); }; diff --git a/src/components/IntroBlock.tsx b/src/components/IntroBlock.tsx index 7b2929185..d8c04cf0c 100644 --- a/src/components/IntroBlock.tsx +++ b/src/components/IntroBlock.tsx @@ -23,7 +23,7 @@ const IntroBlock = ({ image ? "h-screen min-h-[300px]" : "min-h-[660px]", )} > -
+
{image && (
diff --git a/src/components/layout/Navbar.tsx b/src/components/layout/Navbar.tsx index f64c0e99e..985663bd5 100644 --- a/src/components/layout/Navbar.tsx +++ b/src/components/layout/Navbar.tsx @@ -19,6 +19,10 @@ const navItems: NavItemsProps = [ link: "/dashboard", text: "Dashboard", }, + { + link: "/to-act", + text: "To act", + }, { link: "/about", text: "About", @@ -30,7 +34,7 @@ const Navbar = () => { return (
-
+
Date: Wed, 24 Apr 2024 15:41:39 +0200 Subject: [PATCH 3/9] ancres and WIP components --- src/app/dashboard/page.tsx | 153 ++++++++++++++++++++++++---- src/components/DashboardSection.tsx | 15 ++- src/pages/api/chart.ts | 1 - 3 files changed, 142 insertions(+), 27 deletions(-) diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index ea92d6309..7229e9d12 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -1,18 +1,16 @@ "use client"; -import clsx from "clsx"; import dynamic from "next/dynamic"; import React, { useEffect, useState } from "react"; -import { FaEye } from "react-icons/fa"; import "@/lib/env"; import DashboardSection from "@/components/DashboardSection"; - -import { fetchData } from "@/pages/api/chart"; import IntroBlock from "@/components/IntroBlock"; import JoinBlock from "@/components/JoinBlock"; -import TitleBlock from "@/components/TitleBlock"; import Summary, { SummaryLinksProps } from "@/components/Summary"; +import TitleBlock from "@/components/TitleBlock"; + +import { fetchData } from "@/pages/api/chart"; const DashboardChart = dynamic(() => import("@/components/DashboardChart"), { ssr: false, @@ -36,6 +34,76 @@ const summary: SummaryLinksProps = [ }, ], }, + { + title: "Companies", + sublinks: [ + { + label: "Main producers of open-net salmon", + targetId: "salmon-collapse", + }, + { + label: "The new threat: on land-based aquaculture farms", + targetId: "hyper-growth", + }, + { + label: "The future of land-based aquaculture farms", + targetId: "top-10", + }, + ], + }, + { + title: "Biodiversity", + sublinks: [ + { + label: "Deforestation", + targetId: "salmon-collapse", + }, + { + label: "Escapes", + targetId: "hyper-growth", + }, + ], + }, + { + title: "Animal welfare", + sublinks: [ + { + label: "Stress in land-based facilities", + targetId: "salmon-collapse", + }, + { + label: "Mortality rate", + targetId: "hyper-growth", + }, + ], + }, + { + title: "Climate", + sublinks: [ + { + label: "Carbon", + targetId: "salmon-collapse", + }, + ], + }, + { + title: "Social", + sublinks: [ + { + label: "/", + targetId: "salmon-collapse", + }, + ], + }, + { + title: "Alternatives", + sublinks: [ + { + label: "Nutrition matrix", + targetId: "salmon-collapse", + }, + ], + }, ]; const DashboardPage = () => { @@ -48,12 +116,20 @@ const DashboardPage = () => { +
- + + +
+ +
+ + +
@@ -73,15 +149,6 @@ const SalmonCollapseSection = () => { - - - }*/ content="The Atlantic salmon was added to the IUCN Red List of Threatened Species in December 2023. This is largely due to overfishing, habitat degradation, particularly caused by dams blocking migratory routes, as well as climate change altering their environments, impacting their growth and survival rates." /> ); @@ -137,16 +204,23 @@ const TopCountriesSection = () => { ); }; +const SalmonConsumptionSection = () => { + return ( + <> + + + ); +}; + const MainProductionSection = () => { return ( - CTA - - }*/ content="Small artisanal salmon farms have given way to industrial aquaculture. In a few decades, the market has become dominated by a handful of multinational corporations. Mowi, formerly known as Marine Harvest, is the leader in the sector. The company operates in 25 countries." /> ); @@ -158,7 +232,14 @@ const LandPlantsSection = () => { + ); +}; + +const DeforestationSection = () => { + return ( + + ); +}; + +const EscapeSection = () => { + return ( + + ); +}; const AntibioticSection = () => { return ( diff --git a/src/components/DashboardSection.tsx b/src/components/DashboardSection.tsx index e3bd5ea28..fde38b9a9 100644 --- a/src/components/DashboardSection.tsx +++ b/src/components/DashboardSection.tsx @@ -10,10 +10,12 @@ const DashboardChart = dynamic(() => import("@/components/DashboardChart"), { const DashboardSection = ({ title, id, + mainContent, content, cta, }: { title?: string | undefined; + mainContent?: string; content?: string | undefined; id: string; cta?: ReactNode | undefined; @@ -25,14 +27,16 @@ const DashboardSection = ({ const [isLoading, setIsLoading] = useState(true); useEffect(() => { const fetchGraphData = async () => { - const response = await fetchData(id); - setChartData(response); - setIsLoading(false); + if (id.length > 0) { + const response = await fetchData(id); + setChartData(response); + setIsLoading(false); + } }; fetchGraphData(); }, [chartData, id]); - if (!chartData || !id) { + if (!chartData) { return <>; } @@ -40,7 +44,8 @@ const DashboardSection = ({
-

{title}

+

{title}

+

{mainContent}

{content}

{cta &&
{cta}
} diff --git a/src/pages/api/chart.ts b/src/pages/api/chart.ts index ed074d7fc..d74e4c35d 100644 --- a/src/pages/api/chart.ts +++ b/src/pages/api/chart.ts @@ -1,7 +1,6 @@ export const fetchData = async (chartType: string) => { const dataUrl = process.env.NEXT_PUBLIC_PINKBOMBS_DATA_URL; const apiKey = process.env.NEXT_PUBLIC_PINKBOMBS_DATA_API_KEY; - try { const response = await fetch(`${dataUrl}/${chartType}`, { method: "GET", From 43ebb3eb52d7b69271b363643419f838fadfbd94 Mon Sep 17 00:00:00 2001 From: Malena Guallar Date: Wed, 24 Apr 2024 16:10:05 +0200 Subject: [PATCH 4/9] feat: Added graphs to home page + join block --- src/app/page.tsx | 33 ++++++++++++++++++++++++--------- src/components/JoinBlock.tsx | 32 ++++++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 17 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 7ed9976ef..fbed6fae3 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -4,6 +4,7 @@ import clsx from "clsx"; import Image from "next/image"; import * as React from "react"; import "@/lib/env"; +import Plot from "react-plotly.js"; import "../styles/page.css"; @@ -11,6 +12,9 @@ import Edito from "@/components/Edito"; import IconCard from "@/components/IconCard"; import IntroBlock from "@/components/IntroBlock"; import JoinBlock from "@/components/JoinBlock"; +import { useState, useEffect } from "react"; +import { fetchData } from "@/pages/api/chart"; + const HomePage = () => { return ( @@ -182,6 +186,23 @@ const EditoSection = () => { }; const BusinessSection = () => { + const [plot, setPlot] = useState({ + data: [], + layout: {}, + }); + + useEffect(() => { + const fetchGraphData = async () => { + const response = await fetchData("hyper-growth-grouped"); + setPlot(response); + }; + fetchGraphData(); + }, [plot]); + + if (!plot) { + return <>; + } + return (
@@ -192,15 +213,9 @@ const BusinessSection = () => { Salmon production, dominated by a handful of multinationals, has experienced hyper-growth on a global scale for several decades.

- - +
+ +
); diff --git a/src/components/JoinBlock.tsx b/src/components/JoinBlock.tsx index 9a6a18f8b..383dff442 100644 --- a/src/components/JoinBlock.tsx +++ b/src/components/JoinBlock.tsx @@ -1,6 +1,10 @@ import clsx from "clsx"; import Image from "next/image"; import React from "react"; +import Plot from "react-plotly.js"; + +import { useState, useEffect } from "react"; +import { fetchData } from "@/pages/api/chart"; import PrimaryButton from "@/components/buttons/PrimaryButton"; @@ -11,6 +15,23 @@ const IntroBlock = ({ className?: string; headDark?: boolean; }) => { + + const [plot, setPlot] = useState({ + data: [], + layout: {}, + }); + + useEffect(() => { + const fetchGraphData = async () => { + const response = await fetchData("alternatives"); + setPlot(response); + }; + fetchGraphData(); + }, [plot]); + + if (!plot) { + return <>; + } return (
- +
+ +
From ca34ae0de9f1e71483b2be7bd3580b471a4d578e Mon Sep 17 00:00:00 2001 From: oumeimaelisbihani Date: Wed, 24 Apr 2024 16:13:02 +0200 Subject: [PATCH 5/9] biodiversity - Introduction - companies OK --- public/images/deforestation.webp | Bin 0 -> 58244 bytes src/app/dashboard/page.tsx | 34 ++++++++++---------- src/components/CustomDashboardSection.tsx | 37 ++++++++++++++++++++++ 3 files changed, 55 insertions(+), 16 deletions(-) create mode 100644 public/images/deforestation.webp create mode 100644 src/components/CustomDashboardSection.tsx diff --git a/public/images/deforestation.webp b/public/images/deforestation.webp new file mode 100644 index 0000000000000000000000000000000000000000..d1fc29c0e6753aaccd2fa74e03f014162902a1f5 GIT binary patch literal 58244 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�^R)JMgOLLi=T< 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 { const SalmonConsumptionSection = () => { return ( - <> - - + ); }; @@ -250,7 +249,10 @@ const LandPlantsSection = () => { of accidents where large number of fish died as a result of inadequate water conditions and a fire at a plant in Denmark." /> -
+

The future of land-based aquaculture farms @@ -327,9 +329,9 @@ const SalmonConsumptionBisSection = () => { const DeforestationSection = () => { return ( - ); @@ -339,7 +341,7 @@ const EscapeSection = () => { return ( ); diff --git a/src/components/CustomDashboardSection.tsx b/src/components/CustomDashboardSection.tsx new file mode 100644 index 000000000..fa63ceb79 --- /dev/null +++ b/src/components/CustomDashboardSection.tsx @@ -0,0 +1,37 @@ +import Image from "next/image"; +import React from "react"; +import { ReactNode } from "react"; + +const CustomDashboardSection = ({ + title, + id, + mainContent, + content, +}: { + title?: string | undefined; + mainContent?: string; + content?: string | undefined; + id: string; + cta?: ReactNode | undefined; +}) => { + return ( +
+
+
+

{title}

+

{mainContent}

+

{content}

+
+
+ {id} +
+
+
+ ); +}; +export default CustomDashboardSection; From f0b8d6dcfbb389618f422ed2bd32cb15759e94fd Mon Sep 17 00:00:00 2001 From: oumeimaelisbihani Date: Wed, 24 Apr 2024 16:16:34 +0200 Subject: [PATCH 6/9] src for customdashboard --- src/app/dashboard/page.tsx | 1 + src/components/CustomDashboardSection.tsx | 11 +++-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 54748ca92..0538eefb7 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -331,6 +331,7 @@ const DeforestationSection = () => { return ( diff --git a/src/components/CustomDashboardSection.tsx b/src/components/CustomDashboardSection.tsx index fa63ceb79..75166ec87 100644 --- a/src/components/CustomDashboardSection.tsx +++ b/src/components/CustomDashboardSection.tsx @@ -1,18 +1,18 @@ import Image from "next/image"; import React from "react"; -import { ReactNode } from "react"; const CustomDashboardSection = ({ title, id, mainContent, content, + src, }: { title?: string | undefined; mainContent?: string; content?: string | undefined; id: string; - cta?: ReactNode | undefined; + src: string; }) => { return (
@@ -23,12 +23,7 @@ const CustomDashboardSection = ({

{content}

- {id} + {id}

From e2d1595af8fb9d3bcdb85b8f75f8a2da34377503 Mon Sep 17 00:00:00 2001 From: gmguarino Date: Wed, 24 Apr 2024 17:59:25 +0200 Subject: [PATCH 7/9] fix: dynamic load plotly --- src/app/page.tsx | 3 ++- src/components/DashboardChart.tsx | 5 ++++- src/components/JoinBlock.tsx | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index fbed6fae3..d3b65d2f5 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -4,7 +4,8 @@ import clsx from "clsx"; import Image from "next/image"; import * as React from "react"; import "@/lib/env"; -import Plot from "react-plotly.js"; +import dynamic from "next/dynamic"; +const Plot = dynamic(() => import("react-plotly.js"), { ssr: false, }) import "../styles/page.css"; diff --git a/src/components/DashboardChart.tsx b/src/components/DashboardChart.tsx index 1d848d3d2..92809e3b4 100644 --- a/src/components/DashboardChart.tsx +++ b/src/components/DashboardChart.tsx @@ -1,6 +1,9 @@ import { Data } from "plotly.js-dist-min"; import React from "react"; -import Plot from "react-plotly.js"; +// import Plot from "react-plotly.js"; +import dynamic from "next/dynamic"; +const Plot = dynamic(() => import("react-plotly.js"), { ssr: false, }) + const DashboardChart = ({ data, diff --git a/src/components/JoinBlock.tsx b/src/components/JoinBlock.tsx index 383dff442..a2c0bb277 100644 --- a/src/components/JoinBlock.tsx +++ b/src/components/JoinBlock.tsx @@ -1,7 +1,9 @@ import clsx from "clsx"; import Image from "next/image"; import React from "react"; -import Plot from "react-plotly.js"; +// import Plot from "react-plotly.js"; +import dynamic from "next/dynamic"; +const Plot = dynamic(() => import("react-plotly.js"), { ssr: false, }) import { useState, useEffect } from "react"; import { fetchData } from "@/pages/api/chart"; From 9dc654cd0786521031c87ecc1df72c59db81d9bd Mon Sep 17 00:00:00 2001 From: gmguarino Date: Wed, 24 Apr 2024 18:45:52 +0200 Subject: [PATCH 8/9] add: apiPath variable to call ras-map --- src/app/dashboard/page.tsx | 2 +- src/app/page.tsx | 2 +- src/components/DashboardSection.tsx | 2 +- src/components/JoinBlock.tsx | 2 +- src/pages/api/chart.ts | 9 +++++---- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 0538eefb7..b5ba07f33 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -172,7 +172,7 @@ const TopCountriesSection = () => { }); useEffect(() => { const fetchGraphData = async () => { - const mapResponse = await fetchData("evolution-map"); + const mapResponse = await fetchData("graphs", "evolution-map"); setMapData(mapResponse); }; fetchGraphData(); diff --git a/src/app/page.tsx b/src/app/page.tsx index d3b65d2f5..55d90f709 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -194,7 +194,7 @@ const BusinessSection = () => { useEffect(() => { const fetchGraphData = async () => { - const response = await fetchData("hyper-growth-grouped"); + const response = await fetchData("graphs", "hyper-growth-grouped"); setPlot(response); }; fetchGraphData(); diff --git a/src/components/DashboardSection.tsx b/src/components/DashboardSection.tsx index fde38b9a9..11fc97768 100644 --- a/src/components/DashboardSection.tsx +++ b/src/components/DashboardSection.tsx @@ -28,7 +28,7 @@ const DashboardSection = ({ useEffect(() => { const fetchGraphData = async () => { if (id.length > 0) { - const response = await fetchData(id); + const response = await fetchData("graphs", id); setChartData(response); setIsLoading(false); } diff --git a/src/components/JoinBlock.tsx b/src/components/JoinBlock.tsx index a2c0bb277..baf80ba7c 100644 --- a/src/components/JoinBlock.tsx +++ b/src/components/JoinBlock.tsx @@ -25,7 +25,7 @@ const IntroBlock = ({ useEffect(() => { const fetchGraphData = async () => { - const response = await fetchData("alternatives"); + const response = await fetchData("graphs", "alternatives"); setPlot(response); }; fetchGraphData(); diff --git a/src/pages/api/chart.ts b/src/pages/api/chart.ts index d74e4c35d..deeb22291 100644 --- a/src/pages/api/chart.ts +++ b/src/pages/api/chart.ts @@ -1,8 +1,9 @@ -export const fetchData = async (chartType: string) => { - const dataUrl = process.env.NEXT_PUBLIC_PINKBOMBS_DATA_URL; - const apiKey = process.env.NEXT_PUBLIC_PINKBOMBS_DATA_API_KEY; +export const fetchData = async (apiPath: string, chartName: string) => { + + const dataUrl = process.env.PINKBOMBS_DATA_URL; + const apiKey = process.env.PINKBOMBS_DATA_API_KEY; try { - const response = await fetch(`${dataUrl}/${chartType}`, { + const response = await fetch(`${dataUrl}/${apiPath}/${chartName}`, { method: "GET", headers: { "X-API-Key": apiKey, From 85fd4b7f6e73f45f186049745098de83936b2dba Mon Sep 17 00:00:00 2001 From: Giuseppe Guarino <40060221+gmguarino@users.noreply.github.com> Date: Thu, 25 Apr 2024 00:02:02 +0200 Subject: [PATCH 9/9] Fix: Infinite loop (#9) * use next_public env vars * fix: rm array from dependencies * use server side secret variables --- src/app/dashboard/page.tsx | 10 +++++----- src/app/page.tsx | 11 +++++------ src/components/DashboardSection.tsx | 3 ++- src/components/JoinBlock.tsx | 11 +++++------ src/pages/api/chart.ts | 1 + 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index b5ba07f33..5e9d6fcac 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -170,13 +170,13 @@ const TopCountriesSection = () => { data: [], layout: {}, }); + const fetchGraphData = async () => { + const mapResponse = await fetchData("graphs", "evolution-map"); + setMapData(mapResponse); + }; useEffect(() => { - const fetchGraphData = async () => { - const mapResponse = await fetchData("graphs", "evolution-map"); - setMapData(mapResponse); - }; fetchGraphData(); - }, [mapData]); + }, []); if (!mapData) { return <>; diff --git a/src/app/page.tsx b/src/app/page.tsx index 55d90f709..722474d83 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -191,14 +191,13 @@ const BusinessSection = () => { data: [], layout: {}, }); - + const fetchGraphData = async () => { + const response = await fetchData("graphs", "hyper-growth-grouped"); + setPlot(response); + }; useEffect(() => { - const fetchGraphData = async () => { - const response = await fetchData("graphs", "hyper-growth-grouped"); - setPlot(response); - }; fetchGraphData(); - }, [plot]); + }, []); if (!plot) { return <>; diff --git a/src/components/DashboardSection.tsx b/src/components/DashboardSection.tsx index 11fc97768..894a112d7 100644 --- a/src/components/DashboardSection.tsx +++ b/src/components/DashboardSection.tsx @@ -24,6 +24,7 @@ const DashboardSection = ({ data: [], layout: {}, }); + const [isLoading, setIsLoading] = useState(true); useEffect(() => { const fetchGraphData = async () => { @@ -34,7 +35,7 @@ const DashboardSection = ({ } }; fetchGraphData(); - }, [chartData, id]); + }, [id]); if (!chartData) { return <>; diff --git a/src/components/JoinBlock.tsx b/src/components/JoinBlock.tsx index baf80ba7c..6aa1eed27 100644 --- a/src/components/JoinBlock.tsx +++ b/src/components/JoinBlock.tsx @@ -22,14 +22,13 @@ const IntroBlock = ({ data: [], layout: {}, }); - + const fetchGraphData = async () => { + const response = await fetchData("graphs", "alternatives"); + setPlot(response); + }; useEffect(() => { - const fetchGraphData = async () => { - const response = await fetchData("graphs", "alternatives"); - setPlot(response); - }; fetchGraphData(); - }, [plot]); + }, []); if (!plot) { return <>; diff --git a/src/pages/api/chart.ts b/src/pages/api/chart.ts index deeb22291..9fc1aadd6 100644 --- a/src/pages/api/chart.ts +++ b/src/pages/api/chart.ts @@ -1,3 +1,4 @@ +"use server"; export const fetchData = async (apiPath: string, chartName: string) => { const dataUrl = process.env.PINKBOMBS_DATA_URL;