diff --git a/src/components/SponsorLogo.tsx b/src/components/SponsorLogo.tsx index 59ab6d9..3091739 100644 --- a/src/components/SponsorLogo.tsx +++ b/src/components/SponsorLogo.tsx @@ -1,25 +1,47 @@ +import Image, { StaticImageData } from "next/image"; import Link from "next/link"; +import { motion } from "framer-motion"; type SponsorLogoProps = { sponsorLink: string; - sponsorImage: string; + sponsorImage: StaticImageData | string; + alt: string; }; -const SponsorLogo = (props: SponsorLogoProps) => { +const SponsorLogo = ({ alt, sponsorImage, sponsorLink }: SponsorLogoProps) => { + const resolvedSrc = + typeof sponsorImage === "string" ? sponsorImage : sponsorImage.src; + const isSvg = resolvedSrc?.toLowerCase().endsWith(".svg"); + + const sharedProps = { + alt, + className: "mx-auto h-auto w-full max-w-[260px]", + loading: "lazy" as const, + }; + return ( - + + {isSvg ? ( + + ) : typeof sponsorImage === "string" ? ( + + ) : ( + + )} + ); }; diff --git a/src/components/SponsorSection/SponsorSection.tsx b/src/components/SponsorSection/SponsorSection.tsx index 7966247..4fb2053 100644 --- a/src/components/SponsorSection/SponsorSection.tsx +++ b/src/components/SponsorSection/SponsorSection.tsx @@ -19,6 +19,7 @@ const SponsorSection = () => { key={sponsor.sponsorLink} > diff --git a/src/components/SponsorSection/SponsorsInfo.ts b/src/components/SponsorSection/SponsorsInfo.ts index d826d64..b051aa3 100644 --- a/src/components/SponsorSection/SponsorsInfo.ts +++ b/src/components/SponsorSection/SponsorsInfo.ts @@ -1,23 +1,34 @@ import sponsorLogoArcurve from "../../images/sponsors/sponsor-logo-arcurve.png"; import sponsorPason from "../../images/sponsors/sponsor-logo-pason.svg"; import sponsorIEEE from "../../images/sponsors/sponsor-logo-ieee.png"; +import sponsorSeisware from "../../images/sponsors/sponsor-logo-seisware.png"; +import type { StaticImageData } from "next/image"; export type Organization = { sponsorLink: string; - sponsorImage: string; + sponsorImage: StaticImageData | string; + alt: string; }; export const SponsorList: Organization[] = [ { - sponsorImage: sponsorPason.src, + alt: "Pason logo", + sponsorImage: sponsorPason, sponsorLink: "https://www.pason.com/", }, { - sponsorImage: sponsorLogoArcurve.src, + alt: "Arcurve logo", + sponsorImage: sponsorLogoArcurve, sponsorLink: "https://www.arcurve.com/", }, { - sponsorImage: sponsorIEEE.src, + alt: "IEEE logo", + sponsorImage: sponsorIEEE, sponsorLink: "https://www.ieee.org/", }, + { + alt: "Seisware logo", + sponsorImage: sponsorSeisware, + sponsorLink: "https://www.seisware.com/", + }, ]; diff --git a/src/images/sponsors/sponsor-logo-seisware.png b/src/images/sponsors/sponsor-logo-seisware.png new file mode 100644 index 0000000..4aaf389 Binary files /dev/null and b/src/images/sponsors/sponsor-logo-seisware.png differ diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index c9628cd..6079fa0 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -15,7 +15,10 @@ const inter = Inter({ subsets: ["latin"] }); export default function App({ Component, pageProps }: AppProps) { useEffect(() => { - Aos.init({ duration: 1000 }); // Init AOS. Sets AOS default duration as 1s + Aos.init({ + duration: 1000, // default duration 1s + offset: 50, // start animations sooner after entering viewport + }); }, []); return (