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
36 changes: 14 additions & 22 deletions src/views/Home/components/Sponsors/BasicSponsor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,31 @@ import {
StyledSponsorTitleSlashesContainer,
} from "./Sponsors.style";
import SponsorBadge from "./SponsorBadge";
import {Color} from "../../../../styles/colors";
import {BIG_BREAKPOINT} from "../../../../constants/BreakPoints";
import {buildSlashes} from "./Sponsors";
import {useWindowSize} from "react-use";
import React, {FC, useCallback, useEffect, useState} from "react";
import {Sponsor} from "./SponsorsData";
import { Color } from "../../../../styles/colors";
import { BIG_BREAKPOINT } from "../../../../constants/BreakPoints";
import React, { FC } from "react";
import { Sponsor } from "./SponsorsData";
import { useSponsorsHook } from "./useSponsorsHook";

interface Props {
sponsors: Array<Sponsor> | null;
}

export const BasicSponsor: FC<React.PropsWithChildren<Props>> = ({sponsors}) => {
const { width } = useWindowSize();
const [slashes, setSlashes] = useState("");
const [isHovered, setIsHovered] = useState<boolean>(false);

useEffect(() => {
const newSlashes = buildSlashes(2);

setSlashes(newSlashes);
}, [width]);

const handleHoverSponsorBasic = useCallback(() => setIsHovered(true), []);
const handleUnHoverSponsorBasic = useCallback(() => setIsHovered(false), []);

export const BasicSponsor: FC<React.PropsWithChildren<Props>> = ({
sponsors,
}) => {
const { width, slashes, isHovered, handleHover, handleUnHover } =
useSponsorsHook({
numberOfSlashGroups: 2,
});
return (
<>
{sponsors !== null && sponsors.length > 0 && (
<StyledSponsorItemContainer
id="basic-sponsors"
className="SponsorItem basic"
onMouseEnter={handleHoverSponsorBasic}
onMouseLeave={handleUnHoverSponsorBasic}
onMouseEnter={handleHover}
onMouseLeave={handleUnHover}
>
<SponsorBadge
color={Color.DARK_BLUE}
Expand Down
30 changes: 12 additions & 18 deletions src/views/Home/components/Sponsors/Communities.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,23 @@ import {
StyledSponsorTitleSlashesContainer,
} from "./Sponsors.style";
import SponsorBadge from "./SponsorBadge";
import {Color} from "../../../../styles/colors";
import {BIG_BREAKPOINT} from "../../../../constants/BreakPoints";
import {buildSlashes} from "./Sponsors";
import {useWindowSize} from "react-use";
import React, {FC, useCallback, useEffect, useState} from "react";
import {Sponsor} from "./SponsorsData";
import { Color } from "../../../../styles/colors";
import { BIG_BREAKPOINT } from "../../../../constants/BreakPoints";
import React, { FC } from "react";
import { Sponsor } from "./SponsorsData";
import { useSponsorsHook } from "./useSponsorsHook";

interface Props {
sponsors: Array<Sponsor> | null;
}

export const Communities: FC<React.PropsWithChildren<Props>> = ({sponsors}) => {
const { width } = useWindowSize();
const [slashes, setSlashes] = useState("");
const [isHovered, setIsHovered] = useState<boolean>(false);
useEffect(() => {
const newSlashes = buildSlashes(2);

setSlashes(newSlashes);
}, [width]);

const handleHover = useCallback(() => setIsHovered(true), []);
const handleUnHover = useCallback(() => setIsHovered(false), []);
export const Communities: FC<React.PropsWithChildren<Props>> = ({
sponsors,
}) => {
const { width, slashes, isHovered, handleHover, handleUnHover } =
useSponsorsHook({
numberOfSlashGroups: 2,
});
return (
<>
{sponsors !== null && sponsors.length > 0 && (
Expand Down
23 changes: 8 additions & 15 deletions src/views/Home/components/Sponsors/MediaPartners.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@ import {
import SponsorBadge from "./SponsorBadge";
import { Color } from "../../../../styles/colors";
import { BIG_BREAKPOINT } from "../../../../constants/BreakPoints";
import { buildSlashes } from "./Sponsors";
import { useWindowSize } from "react-use";
import React, { FC, useCallback, useEffect, useState } from "react";
import React, { FC } from "react";
import { Sponsor } from "./SponsorsData";
import { useSponsorsHook } from "./useSponsorsHook";

interface Props {
sponsors: Array<Sponsor> | null;
Expand All @@ -25,25 +24,19 @@ interface Props {
export const MediaPartners: FC<React.PropsWithChildren<Props>> = ({
sponsors,
}) => {
const { width } = useWindowSize();
const [slashes, setSlashes] = useState("");
const [isHovered, setIsHovered] = useState<boolean>(false);
useEffect(() => {
const newSlashes = buildSlashes(2);
const { width, slashes, isHovered, handleHover, handleUnHover } =
useSponsorsHook({
numberOfSlashGroups: 2,
});

setSlashes(newSlashes);
}, [width]);

const handleHoverMediaPartner = useCallback(() => setIsHovered(true), []);
const handleUnHoverMediaPartner = useCallback(() => setIsHovered(false), []);
return (
<>
{sponsors !== null && sponsors.length > 0 && (
<StyledSponsorItemContainer
className="SponsorItem virtual"
id="media-partners"
onMouseEnter={handleHoverMediaPartner}
onMouseLeave={handleUnHoverMediaPartner}
onMouseEnter={handleHover}
onMouseLeave={handleUnHover}
>
<SponsorBadge
color={Color.DARK_BLUE}
Expand Down
36 changes: 14 additions & 22 deletions src/views/Home/components/Sponsors/PremiumSponsors.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,40 +11,32 @@ import {
StyledSponsorTitleSlashesContainer,
} from "./Sponsors.style";
import SponsorBadge from "./SponsorBadge";
import {Color} from "../../../../styles/colors";
import {BIG_BREAKPOINT} from "../../../../constants/BreakPoints";
import {useWindowSize} from "react-use";
import React, {FC, useCallback, useEffect, useState} from "react";
import {buildSlashes} from "./Sponsors";
import {Sponsor} from "./SponsorsData";
import { Color } from "../../../../styles/colors";
import { BIG_BREAKPOINT } from "../../../../constants/BreakPoints";
import React, { FC } from "react";
import { Sponsor } from "./SponsorsData";
import { useSponsorsHook } from "./useSponsorsHook";

interface Props {
sponsors: Array<Sponsor> | null;
}

export const PremiumSponsors: FC<React.PropsWithChildren<Props>> = ({sponsors}) => {
const { width } = useWindowSize();
const [slashes, setSlashes] = useState("");
const [isHovered, setIsHovered] = useState<boolean>(false);
useEffect(() => {
const newSlashes = buildSlashes(2);
export const PremiumSponsors: FC<React.PropsWithChildren<Props>> = ({
sponsors,
}) => {
const { width, slashes, isHovered, handleHover, handleUnHover } =
useSponsorsHook({
numberOfSlashGroups: 2,
});

setSlashes(newSlashes);
}, [width]);

const handleHoverSponsorPremium = useCallback(() => setIsHovered(true), []);
const handleUnHoverSponsorPremium = useCallback(
() => setIsHovered(false),
[]
);
return (
<>
{sponsors !== null && sponsors.length > 0 && (
<StyledSponsorItemContainer
id="premium-sponsors"
className="SponsorItem premium"
onMouseEnter={handleHoverSponsorPremium}
onMouseLeave={handleUnHoverSponsorPremium}
onMouseEnter={handleHover}
onMouseLeave={handleUnHover}
>
<SponsorBadge
color={Color.DARK_BLUE}
Expand Down
37 changes: 14 additions & 23 deletions src/views/Home/components/Sponsors/RegularSponsors.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,40 +11,31 @@ import {
StyledSponsorTitleSlashesContainer,
} from "./Sponsors.style";
import SponsorBadge from "./SponsorBadge";
import {Color} from "../../../../styles/colors";
import {BIG_BREAKPOINT} from "../../../../constants/BreakPoints";
import {buildSlashes} from "./Sponsors";
import {useWindowSize} from "react-use";
import React, {FC, useCallback, useEffect, useState} from "react";
import {Sponsor} from "./SponsorsData";
import { Color } from "../../../../styles/colors";
import { BIG_BREAKPOINT } from "../../../../constants/BreakPoints";
import React, { FC } from "react";
import { Sponsor } from "./SponsorsData";
import { useSponsorsHook } from "./useSponsorsHook";

interface Props {
sponsors: Array<Sponsor> | null;
}

export const RegularSponsors: FC<React.PropsWithChildren<Props>> = ({sponsors}) => {
const { width } = useWindowSize();
const [slashes, setSlashes] = useState("");
const [isHovered, setIsHovered] = useState<boolean>(false);
useEffect(() => {
const newSlashes = buildSlashes(2);

setSlashes(newSlashes);
}, [width]);

const handleHoverSponsorRegular = useCallback(() => setIsHovered(true), []);
const handleUnHoverSponsorRegular = useCallback(
() => setIsHovered(false),
[]
);
export const RegularSponsors: FC<React.PropsWithChildren<Props>> = ({
sponsors,
}) => {
const { width, slashes, isHovered, handleHover, handleUnHover } =
useSponsorsHook({
numberOfSlashGroups: 2,
});
return (
<>
{sponsors !== null && sponsors.length > 0 && (
<StyledSponsorItemContainer
id="regular-sponsors"
className="SponsorItem regular"
onMouseEnter={handleHoverSponsorRegular}
onMouseLeave={handleUnHoverSponsorRegular}
onMouseEnter={handleHover}
onMouseLeave={handleUnHover}
>
<SponsorBadge
color={Color.DARK_BLUE}
Expand Down
45 changes: 20 additions & 25 deletions src/views/Home/components/Sponsors/Sponsors.tsx
Original file line number Diff line number Diff line change
@@ -1,37 +1,32 @@
import {Color} from "../../../../styles/colors";
import React, {FC} from "react";
import { Color } from "../../../../styles/colors";
import React, { FC } from "react";

import LessThanBlueIcon
from "../../../../assets/images/MoreThanBlueWhiteIcon.svg";
import LessThanBlueWhiteIcon
from "../../../../assets/images/LessThanBlueWhiteIcon.svg";
import SectionWrapper
from "../../../../components/SectionWrapper/SectionWrapper";
import LessThanBlueIcon from "../../../../assets/images/MoreThanBlueWhiteIcon.svg";
import LessThanBlueWhiteIcon from "../../../../assets/images/LessThanBlueWhiteIcon.svg";
import SectionWrapper from "../../../../components/SectionWrapper/SectionWrapper";
import TitleSection from "../../../../components/SectionTitle/TitleSection";
import {
StyledSponsorsContainer,
StyledTitleContainer,
StyledTitleImg,
} from "./Sponsors.style";
import {TopSponsors} from "./TopSponsors";
import {RegularSponsors} from "./RegularSponsors";
import {PremiumSponsors} from "./PremiumSponsors";
import {BasicSponsor} from "./BasicSponsor";
import {Communities} from "./Communities";
import {MediaPartners} from "./MediaPartners";
import {Supporters} from "./Supporters";
import {sponsors} from "./SponsorsData";
import { TopSponsors } from "./TopSponsors";
import { RegularSponsors } from "./RegularSponsors";
import { PremiumSponsors } from "./PremiumSponsors";
import { BasicSponsor } from "./BasicSponsor";
import { Communities } from "./Communities";
import { MediaPartners } from "./MediaPartners";
import { Supporters } from "./Supporters";
import { sponsors } from "./SponsorsData";

export const buildSlashes = (module: number) => {
const slashesElement = document.getElementById("Slashes");

const slashesWidth = slashesElement?.offsetWidth ?? 0;

let slashes = "";
for (let index = 0; index < slashesWidth; index++) {
if (index % module === 0) slashes += "/ ";
}

return slashes;
};

Expand All @@ -51,13 +46,13 @@ const Sponsors: FC<React.PropsWithChildren<unknown>> = () => (
/>
<StyledTitleImg alt="more than - icon" src={LessThanBlueWhiteIcon} />
</StyledTitleContainer>
<TopSponsors sponsors={sponsors.top}/>
<PremiumSponsors sponsors={sponsors.premium}/>
<RegularSponsors sponsors={sponsors.regular}/>
<BasicSponsor sponsors={sponsors.basic}/>
<Communities sponsors={sponsors.communities}/>
<Supporters sponsors={sponsors.supporters}/>
<MediaPartners sponsors={sponsors.media_partners}/>
<TopSponsors sponsors={sponsors.top} />
<PremiumSponsors sponsors={sponsors.premium} />
<RegularSponsors sponsors={sponsors.regular} />
<BasicSponsor sponsors={sponsors.basic} />
<Communities sponsors={sponsors.communities} />
<Supporters sponsors={sponsors.supporters} />
<MediaPartners sponsors={sponsors.media_partners} />
</StyledSponsorsContainer>
</SectionWrapper>
);
Expand Down
Loading
Loading