From dfaf166fba5d5c67b57efe748fc5dbe91343ec1c Mon Sep 17 00:00:00 2001 From: Anyul Rivas Date: Tue, 13 May 2025 22:48:53 +0200 Subject: [PATCH 1/2] fix: carrousel swiper was showing the same speakers every year. --- src/2023/Home/Home2023Wrapper.tsx | 13 ++++++----- src/2024/HomeWrapper2024.tsx | 10 ++++---- src/components/Swiper/SpeakerSwiper.tsx | 27 ++++++++++++++-------- src/components/Swiper/SpeakersCarousel.tsx | 8 ++++--- src/data/2023.json | 2 +- src/hooks/useFetchSpeakers.ts | 5 ++-- src/views/Home/HomeWrapper.tsx | 11 +++++---- 7 files changed, 46 insertions(+), 30 deletions(-) diff --git a/src/2023/Home/Home2023Wrapper.tsx b/src/2023/Home/Home2023Wrapper.tsx index 408095f36..c0d92eafd 100644 --- a/src/2023/Home/Home2023Wrapper.tsx +++ b/src/2023/Home/Home2023Wrapper.tsx @@ -1,14 +1,14 @@ -import { BIG_BREAKPOINT } from "../../constants/BreakPoints"; +import { BIG_BREAKPOINT } from "@constants/BreakPoints"; import React, { FC } from "react"; import Faqs from "./components/Faqs/Faqs"; import Home from "./components/Home/Home"; import Sponsors from "./components/Sponsors/Sponsors"; import { styled } from "styled-components"; -import data from "../../data/2023.json"; +import data from "@data/2023.json"; import { useLocation } from "react-router"; -import SpeakersCarousel from "../../components/Swiper/SpeakersCarousel"; -import { ROUTE_2023_SPEAKERS } from "../../constants/routes"; -import { useDocumentTitleUpdater } from "../../hooks/useDocumentTitleUpdate"; +import SpeakersCarousel from "@components/Swiper/SpeakersCarousel"; +import { ROUTE_2023_SPEAKERS } from "@constants/routes"; +import { useDocumentTitleUpdater } from "@hooks/useDocumentTitleUpdate"; const StyledContainer = styled.div` padding-bottom: 10rem; @@ -35,7 +35,8 @@ export const Home2023Wrapper: FC> = () => { diff --git a/src/2024/HomeWrapper2024.tsx b/src/2024/HomeWrapper2024.tsx index 7d141bd53..dcfaf5b3f 100644 --- a/src/2024/HomeWrapper2024.tsx +++ b/src/2024/HomeWrapper2024.tsx @@ -2,15 +2,16 @@ import React, { FC } from "react"; import { styled } from "styled-components"; import { useLocation } from "react-router"; -import { BIG_BREAKPOINT } from "../constants/BreakPoints"; -import conferenceData from "../data/2024.json"; +import { BIG_BREAKPOINT } from "@constants/BreakPoints"; +import conferenceData from "@data/2024.json"; import Faqs from "../views/Home/components/Faqs/Faqs"; import Home from "./Home/Home"; import Sponsors from "./Sponsors/Sponsors"; import SpeakersCarousel from "../components/Swiper/SpeakersCarousel"; -import { ROUTE_2024_SPEAKERS } from "../constants/routes"; -import { useDocumentTitleUpdater } from "../hooks/useDocumentTitleUpdate"; +import { ROUTE_2024_SPEAKERS } from "@constants/routes"; +import { useDocumentTitleUpdater } from "@hooks/useDocumentTitleUpdate"; +import data from "@data/2023.json"; const StyledContainer = styled.div` padding-bottom: 10rem; @@ -39,6 +40,7 @@ export const HomeWrapper2024: FC> = () => { diff --git a/src/components/Swiper/SpeakerSwiper.tsx b/src/components/Swiper/SpeakerSwiper.tsx index 5521cb630..90320bda8 100644 --- a/src/components/Swiper/SpeakerSwiper.tsx +++ b/src/components/Swiper/SpeakerSwiper.tsx @@ -2,15 +2,15 @@ import React, { FC } from "react"; import { Autoplay, Parallax } from "swiper"; import { Swiper, SwiperSlide } from "swiper/react"; import { styled } from "styled-components"; -import { Color } from "../../styles/colors"; +import { Color } from "@styles/colors"; import "swiper/swiper-bundle.min.css"; import "../../components/Swiper/SpeakersCarousel.scss"; -import conferenceData from "../../data/2025.json"; -import { useFetchSpeakers } from "../../hooks/useFetchSpeakers"; -import { ISpeaker } from "../../types/speakers"; -import { ROUTE_SPEAKER_DETAIL } from "../../constants/routes"; +import { useFetchSpeakers } from "@hooks/useFetchSpeakers"; +// @ts-expect-error some weird error when importing types +import { ISpeaker } from "@types/speakers"; +import { ROUTE_SPEAKER_DETAIL } from "@constants/routes"; import { Link } from "react-router"; -import { useSentryErrorReport } from "../../hooks/useSentryErrorReport"; +import { useSentryErrorReport } from "@hooks/useSentryErrorReport"; const StyledSlideImage = styled.img` display: block; @@ -36,8 +36,17 @@ const StyledSlideText = styled.p` font-size: 0.875rem; color: white; `; -const SpeakerSwiper: FC> = () => { - const { isLoading, data, error } = useFetchSpeakers(); + +interface Props { + isEnabled: boolean; + url: string; +} + +const SpeakerSwiper: FC> = ({ + isEnabled, + url, +}) => { + const { isLoading, data, error } = useFetchSpeakers(url); const cachedSpeakers = React.useMemo(() => { return data?.toSorted(() => 0.5 - Math.random()).slice(0, 20); @@ -48,7 +57,7 @@ const SpeakerSwiper: FC> = () => { return ( <> {isLoading &&

Loading

} - {conferenceData.carrousel.enabled && cachedSpeakers && ( + {isEnabled && cachedSpeakers && ( > = ({ speakersLink, sessionizeUrl, + isEnabled, }) => { return ( @@ -78,7 +80,7 @@ const SpeakersCarousel: FC> = ({ color={Color.WHITE} /> - + View all speakers diff --git a/src/data/2023.json b/src/data/2023.json index 725b45b36..d59e4940a 100644 --- a/src/data/2023.json +++ b/src/data/2023.json @@ -1,7 +1,7 @@ { "actionButtons": false, "carrousel": { - "enabled": false + "enabled": true }, "cfp": { "startDay": "2022-11-01T00:00:00", diff --git a/src/hooks/useFetchSpeakers.ts b/src/hooks/useFetchSpeakers.ts index 074e9c9a6..4d980f8f9 100644 --- a/src/hooks/useFetchSpeakers.ts +++ b/src/hooks/useFetchSpeakers.ts @@ -1,7 +1,8 @@ import { useQuery, UseQueryResult } from "react-query"; import axios from "axios"; -import { speakerAdapter } from "../services/speakerAdapter"; -import { IResponse, ISpeaker } from "../types/speakers"; +import { speakerAdapter } from "@services/speakerAdapter"; +// @ts-expect-error some weird error when importing types +import { IResponse, ISpeaker } from "@types/speakers"; const URLS = { default: "https://sessionize.com/api/v2/xhudniix/view/Speakers", diff --git a/src/views/Home/HomeWrapper.tsx b/src/views/Home/HomeWrapper.tsx index 70c3358a8..d980e3a8b 100644 --- a/src/views/Home/HomeWrapper.tsx +++ b/src/views/Home/HomeWrapper.tsx @@ -1,15 +1,15 @@ -import { BIG_BREAKPOINT } from "../../constants/BreakPoints"; +import { BIG_BREAKPOINT } from "@constants/BreakPoints"; import React, { FC } from "react"; import Faqs from "./components/Faqs/Faqs"; import Home from "./components/Home/Home"; import Sponsors from "./components/Sponsors/Sponsors"; import { styled } from "styled-components"; -import conferenceData from "../../data/2025.json"; +import conferenceData from "@data/2025.json"; import { useLocation } from "react-router"; -import SpeakersCarousel from "../../components/Swiper/SpeakersCarousel"; -import { ROUTE_SPEAKERS } from "../../constants/routes"; -import { useDocumentTitleUpdater } from "../../hooks/useDocumentTitleUpdate"; +import SpeakersCarousel from "@components/Swiper/SpeakersCarousel"; +import { ROUTE_SPEAKERS } from "@constants/routes"; +import { useDocumentTitleUpdater } from "@hooks/useDocumentTitleUpdate"; const StyledContainer = styled.div` padding-bottom: 10rem; @@ -38,6 +38,7 @@ const HomeWrapper: FC> = () => { )} From 66a6467215b903b1be1fa846d578ae4779377d3f Mon Sep 17 00:00:00 2001 From: Anyul Rivas Date: Tue, 13 May 2025 23:03:41 +0200 Subject: [PATCH 2/2] fix: carrousel swiper was showing the same speakers every year. --- src/2024/HomeWrapper2024.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/2024/HomeWrapper2024.tsx b/src/2024/HomeWrapper2024.tsx index dcfaf5b3f..1fe3a7f26 100644 --- a/src/2024/HomeWrapper2024.tsx +++ b/src/2024/HomeWrapper2024.tsx @@ -11,7 +11,6 @@ import Sponsors from "./Sponsors/Sponsors"; import SpeakersCarousel from "../components/Swiper/SpeakersCarousel"; import { ROUTE_2024_SPEAKERS } from "@constants/routes"; import { useDocumentTitleUpdater } from "@hooks/useDocumentTitleUpdate"; -import data from "@data/2023.json"; const StyledContainer = styled.div` padding-bottom: 10rem; @@ -40,7 +39,7 @@ export const HomeWrapper2024: FC> = () => {