From decf83cc8ee2960d4fe5ae2d420b783af605cd00 Mon Sep 17 00:00:00 2001 From: Catalin Rosu Date: Sat, 7 Sep 2024 12:25:34 +0300 Subject: [PATCH 1/3] Add new ramp details (#29) * Add new ramp details * Update public key --- next.config.js | 2 +- src/components/ramps/RampsLayout.jsx | 5 +++++ src/components/ramps/assets/logos/topper.png | Bin 0 -> 1013 bytes 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/components/ramps/assets/logos/topper.png diff --git a/next.config.js b/next.config.js index cd4b9108..69aa57f8 100644 --- a/next.config.js +++ b/next.config.js @@ -76,7 +76,7 @@ const moduleExports = () => { .getAll("url-redirects", { apiKey: process.env.NEXT_PUBLIC_BUILDER_API_KEY || - "983ae1dad0ba4ca4ac6dd4ac310edee1", + "ce0c7323a97a4d91bd0baa7490ec9139", options: { noTargeting: true }, cachebust: true, }) diff --git a/src/components/ramps/RampsLayout.jsx b/src/components/ramps/RampsLayout.jsx index 0e4f3174..8d8a127c 100644 --- a/src/components/ramps/RampsLayout.jsx +++ b/src/components/ramps/RampsLayout.jsx @@ -30,6 +30,7 @@ import transfi from "./assets/logos/transfi.png"; import unlimit from "./assets/logos/unlimit.png"; import utorg from "./assets/logos/untorg.png"; import paybis from "./assets/logos/paybis.png"; +import topper from "./assets/logos/topper.png"; const RampLayout = ({ data, @@ -139,6 +140,10 @@ const RampLayout = ({ ramp: "Paybis", logo: paybis, }, + { + ramp: "Topper", + logo: topper, + }, ]; const rampsTitles = data.map((data) => data.fields.RampName).sort(); diff --git a/src/components/ramps/assets/logos/topper.png b/src/components/ramps/assets/logos/topper.png new file mode 100644 index 0000000000000000000000000000000000000000..60058a26a26cbfe29fac2926a05d43f9b4774865 GIT binary patch literal 1013 zcmVyXlSiNeoC-n*b_X#P;B?@(%ph4OXJtG1 zBHL?8yJRx@W|*;seEIiW_pE`MnwpxLnw1b<0mW)3OwuC;9mvxUlgmT->l4%W(>JPv zif}4$M%b}D-C1=X5eA-5dncp@D2X$Hmx(&?QodnA!{q*|L|PYk8LK9N+w!o9Ezu%l zpFS#5Llh){CA2#Ri5AAkCwo;F6Rglwe~@Fm11FpsjZrM7t=# zS_@u3t1pPf9f=xn%(PWQNpdatlJ>W6ud0E1et^R&n(ZYEX0hgTR~|Ot7;Uwb>F_*M zJygV!z%&$>War|B661G?kJ~bhbslprIw=8NIE08gv5!{O!lukw&?EjV)^h~)f6J4!g9E+u_d@hG#p#>{uj2Mkyo?a6pyN!}woPLRlSF6oUW)>4+AoW< zQLsMFX6mkjA!1>58eT;C|C_;9(%w)tVYLKOK)dPd&jH|BztY3>{TBZ zudUq=j#pd?En%O>v9co;>vPJFNl2Y-+N(+7eu72B?LVCd>S6YpyU~5DZY4vPnsKgU z)#ljB;5YXR0PkUw6{8Jj0&OC(x3V8~XhF8I9m*2jd3d2#-C*tTWswy0OGKhN%<8T) zfr8F%RV10dl(3d*X>xkPdljp$KEFUQjQZO}oF*AR!6C+H@mnEDuP*CwUrrA{vG3eWEJDXR}nZx3r#|q0r7YaM9f2JxB6Ai jMQdtmYHDg~{$u_Cn;o3xE Date: Sat, 7 Sep 2024 12:39:37 +0300 Subject: [PATCH 2/3] New Crowdin updates (#28) * New translations common.json (French) * New translations common.json (Spanish) * New translations common.json (Arabic) * New translations common.json (German) * New translations common.json (Greek) * New translations common.json (Finnish) * New translations common.json (Italian) * New translations common.json (Japanese) * New translations common.json (Korean) * New translations common.json (Dutch) * New translations common.json (Polish) * New translations common.json (Portuguese) * New translations common.json (Russian) * New translations common.json (Turkish) * New translations common.json (Ukrainian) * New translations common.json (Chinese Simplified) * New translations common.json (Vietnamese) * New translations common.json (Indonesian) * New translations common.json (Hindi) * Revert the zh translation --- public/locales/ar/common.json | 3 ++- public/locales/de/common.json | 3 ++- public/locales/el/common.json | 3 ++- public/locales/es/common.json | 3 ++- public/locales/fi/common.json | 3 ++- public/locales/fr/common.json | 3 ++- public/locales/hi/common.json | 3 ++- public/locales/id/common.json | 3 ++- public/locales/it/common.json | 3 ++- public/locales/ja/common.json | 3 ++- public/locales/ko/common.json | 3 ++- public/locales/nl/common.json | 3 ++- public/locales/pl/common.json | 3 ++- public/locales/pt/common.json | 3 ++- public/locales/ru/common.json | 3 ++- public/locales/tr/common.json | 3 ++- public/locales/uk/common.json | 3 ++- public/locales/vi/common.json | 3 ++- public/locales/zh/common.json | 3 ++- 19 files changed, 38 insertions(+), 19 deletions(-) diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json index ff36ff54..b9200926 100644 --- a/public/locales/ar/common.json +++ b/public/locales/ar/common.json @@ -1068,7 +1068,8 @@ "faq": "الأسئلة المتكررة", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/de/common.json b/public/locales/de/common.json index a454d641..14ce4f0d 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/el/common.json b/public/locales/el/common.json index b6cbbfe4..62ea54b9 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -1068,7 +1068,8 @@ "faq": "Συχνές Ερωτήσεις", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 08434e2a..b2e0b7c7 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json index c960a40a..729c4911 100644 --- a/public/locales/fi/common.json +++ b/public/locales/fi/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index c7855a18..bf931627 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json index ed7f8e9f..6024e081 100644 --- a/public/locales/hi/common.json +++ b/public/locales/hi/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/id/common.json b/public/locales/id/common.json index e5b6a9d7..a79a6531 100644 --- a/public/locales/id/common.json +++ b/public/locales/id/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/it/common.json b/public/locales/it/common.json index efb3316c..770f7094 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index 97efa252..4c1d4236 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index 4d7319ee..a40751e2 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index 745a4a8b..c9f48209 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index b3088128..6681ade2 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -1068,7 +1068,8 @@ "faq": "Często zadawane pytania", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index 72c5ae61..d4f64700 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -1068,7 +1068,8 @@ "faq": "Perguntas Frequentes", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 674486a3..29d3959e 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index fa76e9d7..56d46e3f 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index 2d75e7fd..615bfdea 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -1068,7 +1068,8 @@ "faq": "FAQ", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index c0bf0f1a..642051f4 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -1068,7 +1068,8 @@ "faq": "Câu hỏi thường gặp", "tickets": "Tickets", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { diff --git a/public/locales/zh/common.json b/public/locales/zh/common.json index 6b06262f..09ee7b44 100644 --- a/public/locales/zh/common.json +++ b/public/locales/zh/common.json @@ -1068,7 +1068,8 @@ "faq": "常见问题", "tickets": "门票", "sponsors": "Sponsors", - "speakers": "Speakers" + "speakers": "Speakers", + "schedule": "Schedule" }, "page": { "side-events": { From d6c7d0fa9ec469388201adedf3a2603ac0bc58dc Mon Sep 17 00:00:00 2001 From: Catalin Rosu Date: Sun, 8 Sep 2024 14:50:01 +0300 Subject: [PATCH 3/3] Misc updates (#30) * Misc updates * Update comment --- .env.example | 2 +- .github/workflows/action.yml | 4 +- .husky/pre-commit | 2 +- package.json | 15 +- src/components/ModalLauncher/ModalLauncher.js | 24 +- src/components/blog/PostCard.js | 18 +- src/components/news/CategorySelection.js | 8 +- .../possible/PossibleAnimatedIcons.js | 12 +- src/components/shared/Divider.js | 18 +- src/components/shared/Link.js | 2 +- src/pages/news/index.js | 119 +++---- src/pages/solanaramp.js | 4 +- yarn.lock | 307 ++++++++++++++++-- 13 files changed, 414 insertions(+), 121 deletions(-) diff --git a/.env.example b/.env.example index c9dfd568..b3c17e00 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -# YouTube keys for getting videos & info from channel +# YouTube YOUTUBE_CHANNEL_ID= YOUTUBE_API_KEY= # Simplecast diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index fe817ae9..68ec727c 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -20,7 +20,7 @@ jobs: - name: installing_yarn run: yarn install - name: formatting - run: yarn format + run: yarn format:check stage: name: Test linting... needs: Format @@ -37,4 +37,4 @@ jobs: - name: installing_yarn & lint run: | yarn install - yarn run lint + yarn lint diff --git a/.husky/pre-commit b/.husky/pre-commit index 7dfdd558..39c0b59e 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,2 +1,2 @@ -yarn format +yarn format:check yarn lint diff --git a/package.json b/package.json index c0caac73..7f2f450b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "solana-com", - "private": true, "description": "The solana.com website", "version": "3.0.0", "author": "Solana Maintainers", @@ -70,7 +69,6 @@ "eslint-plugin-react-hooks": "^4.6.2", "husky": "^9.0.11", "next-sitemap": "^4.2.3", - "next-transpile-modules": "^10.0.1", "postcss": "^8.4.38", "postcss-preset-env": "^9.5.14", "prettier": "^3.2.5", @@ -78,19 +76,14 @@ "typescript": "^5.4.5" }, "scripts": { - "build": "echo 'Building solana-com...' && next build", + "build": "next build", "dev": "next", - "develop": "yarn dev", "start": "next start", - "format": "prettier --check \"**/*.{js,jsx,ts,tsx,json,md,scss}\"", - "format:fix": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md,scss}\"", + "format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,md,scss}\"", + "format:all": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md,scss}\"", "lint": "next lint", - "lint:fix": "yarn lint --fix", - "vdev": "vercel dev --debug", + "lint:fix": "next lint --fix", "postbuild": "next-sitemap", "prepare": "husky" - }, - "msw": { - "workerDirectory": "public" } } diff --git a/src/components/ModalLauncher/ModalLauncher.js b/src/components/ModalLauncher/ModalLauncher.js index 73f1ace3..7f86128b 100644 --- a/src/components/ModalLauncher/ModalLauncher.js +++ b/src/components/ModalLauncher/ModalLauncher.js @@ -1,4 +1,11 @@ -import { useEffect, useState, useRef, createElement } from "react"; +import { + useEffect, + useState, + useRef, + createElement, + useCallback, + useMemo, +} from "react"; import { useRouter } from "next/router"; import { Modal, CloseButton } from "react-bootstrap"; import ArtistsAndCreatorsNewsletter from "../newsletter/artistsAndCreators"; @@ -10,11 +17,14 @@ const ModalLauncher = () => { const [modalLaunchId, setModalLaunchId] = useState("default"); const modalActionCompleted = useRef(false); - const modalMapping = { - artistAndCreatorsNewsletter: ArtistsAndCreatorsNewsletter, - }; + const modalMapping = useMemo( + () => ({ + artistAndCreatorsNewsletter: ArtistsAndCreatorsNewsletter, + }), + [], + ); - const modalCloseHandler = () => { + const modalCloseHandler = useCallback(() => { // if the modal action is not complete, track bounce if (!modalActionCompleted.current && typeof window.gtag !== "undefined") { window.gtag("event", "modal_bounce", { @@ -37,7 +47,7 @@ const ModalLauncher = () => { undefined, { shallow: true }, ); - }; + }, [modalLaunchId, router]); useEffect(() => { const { modalLaunch, modalLaunchId } = router.query; @@ -68,7 +78,7 @@ const ModalLauncher = () => { setShowModal(false); setModalComponent(null); } - }, [router.query]); + }, [router.query, modalCloseHandler, modalMapping]); return ( { height={1073} /> -

{post?.data?.title}

+

+ {typeof post?.data?.title === "string" + ? post.data.title + : post?.data?.title?.Default} +

{t("blog.read-article")} @@ -198,7 +202,11 @@ const PostCard = ({ post, index, isFirstPage, variant = "primary" }) => { -

{post?.data?.title}

+

+ {typeof post?.data?.title === "string" + ? post.data.title + : post?.data?.title?.Default} +

{excerpt}

@@ -232,7 +240,11 @@ const PostCard = ({ post, index, isFirstPage, variant = "primary" }) => { -

{post?.data?.title}

+

+ {typeof post?.data?.title === "string" + ? post.data.title + : post?.data?.title?.Default} +

{excerpt}

) : ( diff --git a/src/components/news/CategorySelection.js b/src/components/news/CategorySelection.js index 3a2c655d..dafb40e1 100644 --- a/src/components/news/CategorySelection.js +++ b/src/components/news/CategorySelection.js @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from "react"; +import { useRef, useState, useEffect, useCallback } from "react"; import styles from "./CategorySelection.module.scss"; import classNames from "classnames"; import { SwitcherButtons } from "@solana-foundation/solana-lib"; @@ -29,7 +29,7 @@ const CategorySelection = ({ return arr.length; // Return -1 if the sum never exceeds maxNumber }; - const updateDisplayedItems = () => { + const updateDisplayedItems = useCallback(() => { const containerWidth = categoryContainer.current.offsetWidth; const dropdownWidth = moreCategoriesLabel?.length * 10 + 70; // 70 = padding + ~margin maxDisplayItems.current = findExceedingIndex( @@ -45,7 +45,7 @@ const CategorySelection = ({ setDisplayCategories(categories); setMoreCategories([]); } - }; + }, [buttonWidths, moreCategoriesLabel, categories]); // Added 'categories' to dependencies // estimate the widths of the category buttons on initial render // note: can't rely on actual widths because some buttons are stored in the dropdown and are not accessible @@ -66,7 +66,7 @@ const CategorySelection = ({ return () => { window.removeEventListener("resize", updateDisplayedItems); }; - }, [buttonWidths]); + }, [buttonWidths, updateDisplayedItems]); return ( <> diff --git a/src/components/possible/PossibleAnimatedIcons.js b/src/components/possible/PossibleAnimatedIcons.js index 8d82f5ed..fa6b48e0 100644 --- a/src/components/possible/PossibleAnimatedIcons.js +++ b/src/components/possible/PossibleAnimatedIcons.js @@ -21,16 +21,18 @@ const PossibleAnimatedIcons = ({ }, ); - if (videoRef.current) { - observer.observe(videoRef.current); + const currentVideoRef = videoRef.current; // Store the current ref + + if (currentVideoRef) { + observer.observe(currentVideoRef); } return () => { - if (videoRef.current) { - observer.unobserve(videoRef.current); + if (currentVideoRef) { + observer.unobserve(currentVideoRef); } }; - }, [videoSrc]); + }, []); const handleVideoError = () => { setShowFallback(true); diff --git a/src/components/shared/Divider.js b/src/components/shared/Divider.js index 5e6e62a9..991a7f09 100644 --- a/src/components/shared/Divider.js +++ b/src/components/shared/Divider.js @@ -3,19 +3,19 @@ import styled from "styled-components"; const StyledDivider = styled.div` height: ${(props) => props.height || "auto"}; ${(props) => - props.axis === "x" + props.$axis === "x" ? "border-top" - : props.axis === "y" + : props.$axis === "y" ? "border-right" : "border"}: 1px solid rgba( ${(props) => - props.theme === "light" + props.$theme === "light" ? "255, 255, 255" - : props.theme === "dark" + : props.$theme === "dark" ? "0, 0, 0" - : "100,100,100"}, - ${(props) => props.alpha || 0.4} + : "100, 100, 100"}, + ${(props) => props.$alpha || 0.4} ); `; @@ -32,9 +32,9 @@ const StyledDivider = styled.div` const Divider = ({ theme, alpha, axis, height, className }) => ( diff --git a/src/components/shared/Link.js b/src/components/shared/Link.js index e044da54..b895cfbb 100644 --- a/src/components/shared/Link.js +++ b/src/components/shared/Link.js @@ -25,7 +25,7 @@ export const Link = ({ asPath.includes(to) && !partiallyActiveIgnore.filter((el) => asPath.startsWith(el)).length) ); - }, [partiallyActive, asPath, to]); + }, [partiallyActive, asPath, to, partiallyActiveIgnore]); // Added partiallyActiveIgnore to dependencies if (internal) { const { scroll, prefetch, ...aProps } = other; diff --git a/src/pages/news/index.js b/src/pages/news/index.js index 9dad349f..88a5ae19 100644 --- a/src/pages/news/index.js +++ b/src/pages/news/index.js @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from "react"; +import { useRef, useState, useEffect, useMemo } from "react"; import { builder, BuilderComponent } from "@builder.io/react"; import HTMLHead from "../../components/builder/HTMLHead"; import Layout from "../../components/layout"; @@ -36,20 +36,22 @@ const BlogIndex = ({ builderLocale, newsListingPage, pressRelease, posts }) => { const newsContent = newsListingPage; // convert Builder category data to switcherButtons data and prepend a 'All' category with a null value - const categoryFilters = [ - { - category: "All", - value: null, - id: null, - }, - ...(categoryFiltersData?.map((item, index) => { - return { - category: item.category.value.name, - value: index + 1, - id: item.category.value.id, - }; - }) || []), - ]; + const categoryFilters = useMemo(() => { + return [ + { + category: "All", + value: null, + id: null, + }, + ...(categoryFiltersData?.map((item, index) => { + return { + category: item.category.value.name, + value: index + 1, + id: item.category.value.id, + }; + }) || []), + ]; + }, [categoryFiltersData]); // convert Builder press release data to Slider data const pressReleaseSliderData = @@ -66,45 +68,46 @@ const BlogIndex = ({ builderLocale, newsListingPage, pressRelease, posts }) => { }) || []; // convert Builder post data to CardDeck data - const allPostData = - posts - ?.map((post) => { - const postData = post?.data; - if (!postData) { - return null; - } - - return { - type: "blog", - publishedDate: postData?.datePublished, - heading: postData?.title, - body: postData?.intro, - backgroundImage: { - src: postData?.image || "/src/img/news/blogbackup.png", - }, - tags: - postData?.tags?.map((item) => { - return item.tag ? item.tag.id : null; - }) || [], - callToAction: { - hierarchy: "link", - size: "md", - label: newsListingPage?.callToActionLabel || t("blog.readArticle"), - endIcon: "arrow-up-right", - iconSize: "sm", - url: `/news/${postData?.slug || ""}`, - }, - }; - }) - .filter(Boolean) - .sort((a, b) => { - // Convert dates to a format that can be compared - const dateA = new Date(a.publishedDate); - const dateB = new Date(b.publishedDate); - - // Compare the dates to determine the order - return dateB - dateA; - }) || []; + const allPostData = useMemo(() => { + return ( + posts + ?.map((post) => { + const postData = post?.data; + if (!postData) { + return null; + } + + return { + type: "blog", + publishedDate: postData?.datePublished, + heading: postData?.title, + body: postData?.intro, + backgroundImage: { + src: postData?.image || "/src/img/news/blogbackup.png", + }, + tags: + postData?.tags?.map((item) => { + return item.tag ? item.tag.id : null; + }) || [], + callToAction: { + hierarchy: "link", + size: "md", + label: + newsListingPage?.callToActionLabel || t("blog.readArticle"), + endIcon: "arrow-up-right", + iconSize: "sm", + url: `/news/${postData?.slug || ""}`, + }, + }; + }) + .filter(Boolean) + .sort((a, b) => { + const dateA = new Date(a.publishedDate); + const dateB = new Date(b.publishedDate); + return dateB - dateA; + }) || [] + ); + }, [posts, newsListingPage?.callToActionLabel, t]); // Set state for all post data const [postResults, setPostResults] = useState(allPostData); @@ -155,7 +158,13 @@ const BlogIndex = ({ builderLocale, newsListingPage, pressRelease, posts }) => { setPostResults(results); setNumResults(postsPerPage); } - }, [categoryFilter, searchFilter]); + }, [ + categoryFilter, + searchFilter, + allPostData, + categoryFilters, + postsPerPage, + ]); return ( diff --git a/src/pages/solanaramp.js b/src/pages/solanaramp.js index b4163f58..3114940a 100644 --- a/src/pages/solanaramp.js +++ b/src/pages/solanaramp.js @@ -162,7 +162,9 @@ export async function getStaticProps({ locale }) { console.error("Issue calling Airtable API:", error), ); - response?.records.forEach((item) => allData.push(item)); + if (response && Array.isArray(response.records)) { + response.records.forEach((item) => allData.push(item)); + } if (response.offset) { return await getAllAirtableRecords( diff --git a/yarn.lock b/yarn.lock index d6a3bab6..a27e5783 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1990,6 +1990,13 @@ algoliasearch@^4.19.1: "@algolia/requester-node-http" "4.22.1" "@algolia/transporter" "4.22.1" +ansi-escapes@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" + integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== + dependencies: + environment "^1.0.0" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -2014,7 +2021,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.1.0: +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== @@ -2390,6 +2397,13 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + browserslist@^4.22.2, browserslist@^4.22.3, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" @@ -2489,6 +2503,11 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + character-entities-html4@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" @@ -2581,6 +2600,21 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== + dependencies: + restore-cursor "^5.0.0" + +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + dependencies: + slice-ansi "^5.0.0" + string-width "^7.0.0" + client-only@0.0.1, client-only@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" @@ -2636,6 +2670,11 @@ color@^4.2.3: color-convert "^2.0.1" color-string "^1.9.0" +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -2648,7 +2687,7 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -commander@^12.0.0: +commander@^12.0.0, commander@~12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== @@ -2862,6 +2901,13 @@ debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +debug@~4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decode-named-character-reference@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" @@ -3069,6 +3115,11 @@ electron-to-chromium@^1.4.668: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz#933887165b8b6025a81663d2d97cf4b85cde27b2" integrity sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ== +emoji-regex@^10.3.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -3091,14 +3142,6 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enhanced-resolve@^5.12.0: version "5.13.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz#26d1ecc448c02de997133217b5c1053f34a0a275" @@ -3122,6 +3165,11 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -3724,6 +3772,26 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@~8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" @@ -3806,6 +3874,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + find-cache-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" @@ -3947,6 +4022,11 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" @@ -3977,6 +4057,11 @@ get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: has-symbols "^1.0.3" hasown "^2.0.0" +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -4416,6 +4501,11 @@ htmlparser2@^8.0.1: domutils "^3.0.1" entities "^4.4.0" +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + husky@^9.0.11: version "9.0.11" resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9" @@ -4668,6 +4758,18 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + is-generator-function@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" @@ -4763,6 +4865,11 @@ is-shared-array-buffer@^1.0.3: dependencies: call-bind "^1.0.7" +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -4996,11 +5103,44 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lilconfig@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lint-staged@^15.0.0: + version "15.2.10" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.10.tgz#92ac222f802ba911897dcf23671da5bb80643cd2" + integrity sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg== + dependencies: + chalk "~5.3.0" + commander "~12.1.0" + debug "~4.3.6" + execa "~8.0.1" + lilconfig "~3.1.2" + listr2 "~8.2.4" + micromatch "~4.0.8" + pidtree "~0.6.0" + string-argv "~0.3.2" + yaml "~2.5.0" + +listr2@~8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.4.tgz#486b51cbdb41889108cb7e2c90eeb44519f5a77f" + integrity sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" + load-script@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" @@ -5049,6 +5189,17 @@ lodash@^4.0.0, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-update@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== + dependencies: + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + longest-streak@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" @@ -5285,6 +5436,11 @@ memoize-one@^5.1.1: resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" @@ -5665,6 +5821,14 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" +micromatch@~4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -5677,6 +5841,16 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -5779,7 +5953,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -5842,13 +6016,6 @@ next-sitemap@^4.2.3: fast-glob "^3.2.12" minimist "^1.2.8" -next-transpile-modules@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/next-transpile-modules/-/next-transpile-modules-10.0.1.tgz#1ca2b735b14781f4792f6214f808b600574e0348" - integrity sha512-4VX/LCMofxIYAVV58UmD+kr8jQflpLWvas/BQ4Co0qWLWzVh06FoZkECkrX5eEZT6oJFqie6+kfbTA3EZCVtdQ== - dependencies: - enhanced-resolve "^5.10.0" - next@^14.2.3: version "14.2.3" resolved "https://registry.yarnpkg.com/next/-/next-14.2.3.tgz#f117dd5d5f20c307e7b8e4f9c1c97d961008925d" @@ -5926,6 +6093,13 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -6088,6 +6262,20 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" @@ -6220,6 +6408,11 @@ path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -6257,6 +6450,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pkg-dir@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" @@ -7074,11 +7272,24 @@ resolve@^2.0.0-next.5: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== + dependencies: + onetime "^7.0.0" + signal-exit "^4.1.0" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -7159,7 +7370,12 @@ sass@^1.77.2: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@>=0.6.0, sax@^1.2.4: +sax@>=0.6.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -7321,7 +7537,7 @@ side-channel@^1.0.6: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -signal-exit@^4.0.1: +signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== @@ -7366,6 +7582,22 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +slice-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + slick-carousel@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/slick-carousel/-/slick-carousel-1.8.1.tgz#a4bfb29014887bb66ce528b90bd0cda262cc8f8d" @@ -7446,6 +7678,11 @@ streamsearch@^1.1.0: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== +string-argv@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + string-convert@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" @@ -7470,6 +7707,15 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string-width@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + string.prototype.matchall@^4.0.11: version "4.0.11" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" @@ -7598,7 +7844,7 @@ stringify-entities@^4.0.0: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -7615,6 +7861,11 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -8324,6 +8575,15 @@ wrap-ansi@^8.1.0: string-width "^5.0.1" strip-ansi "^7.0.1" +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -8376,6 +8636,11 @@ yaml@^2.0.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== +yaml@~2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.1.tgz#c9772aacf62cb7494a95b0c4f1fb065b563db130" + integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"