Skip to content

Commit 6ddbfff

Browse files
committed
Add link rel=preload to Hero
1 parent 3ac5c7d commit 6ddbfff

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/app/conf/2025/components/image-loaded.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,9 @@ const _cache = new Map<string, HTMLImageElement>()
77

88
export interface ImageLoadedProps extends React.HTMLAttributes<HTMLDivElement> {
99
image: string | StaticImageData
10-
fetchPriority?: "high" | "low" | "auto"
1110
}
1211

13-
export function ImageLoaded({
14-
image,
15-
fetchPriority = "auto",
16-
...rest
17-
}: ImageLoadedProps) {
12+
export function ImageLoaded({ image, ...rest }: ImageLoadedProps) {
1813
const [loaded, setLoaded] = useState(false)
1914
const src = typeof image === "string" ? image : image.src
2015

@@ -32,11 +27,10 @@ export function ImageLoaded({
3227
} else {
3328
img = new Image()
3429
img.src = src
35-
img.fetchPriority = fetchPriority
3630
img.addEventListener("load", () => setLoaded(true))
3731
_cache.set(src, img)
3832
}
39-
}, [src, fetchPriority])
33+
}, [src])
4034

4135
return <div data-loaded={alreadyLoaded || loaded} {...rest} />
4236
}

src/components/index-page/hero/index.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Button } from "@/app/conf/_design-system/button"
44
import { ImageLoaded } from "@/app/conf/2025/components/image-loaded"
55

66
import logoBlurred from "./logo-blurred.webp"
7+
import Head from "next/head"
78

89
export function Hero() {
910
return (
@@ -42,9 +43,17 @@ export function Hero() {
4243
function HeroStripes() {
4344
return (
4445
<div className="pointer-events-none relative overflow-hidden max-lg:h-[210px]">
46+
<Head>
47+
<link
48+
rel="preload"
49+
as="image"
50+
href={logoBlurred.src}
51+
type="image/webp"
52+
fetchPriority="high"
53+
/>
54+
</Head>
4555
<ImageLoaded
4656
image={logoBlurred}
47-
fetchPriority="high"
4857
className="relative h-full bg-gradient-to-b from-pri-base to-pri-lighter opacity-0 transition-opacity duration-[1.5s] [mask-position:center_12%] [mask-size:110%] data-[loaded=true]:opacity-100 dark:to-pri-base sm:[mask-size:auto_300%] lg:[mask-position:7%_7%] lg:[mask-size:200%]"
4958
style={{
5059
maskImage: `url(${logoBlurred.src})`,

0 commit comments

Comments
 (0)