Skip to content

Commit dc391dd

Browse files
committed
[metadata] do not fallback id to index
1 parent 1b5f518 commit dc391dd

File tree

2 files changed

+9
-26
lines changed

2 files changed

+9
-26
lines changed

packages/next/src/build/webpack/loaders/next-metadata-image-loader.ts

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -90,32 +90,14 @@ async function nextMetadataImageLoader(
9090
)}, params, ${JSON.stringify(pageSegment)})
9191
9292
const { generateImageMetadata } = imageModule
93-
94-
function getImageMetadata(imageMetadata, idParam) {
95-
const data = {
96-
alt: imageMetadata.alt,
97-
type: imageMetadata.contentType || 'image/png',
98-
url: imageUrl + (idParam ? ('/' + idParam) : '') + ${JSON.stringify(
99-
hashQuery
100-
)},
101-
}
102-
const { size } = imageMetadata
103-
if (size) {
104-
${
105-
type === 'twitter' || type === 'openGraph'
106-
? 'data.width = size.width; data.height = size.height;'
107-
: 'data.sizes = size.width + "x" + size.height;'
108-
}
109-
}
110-
return data
111-
}
112-
93+
94+
const resolvedParams = await props.params
11395
if (generateImageMetadata) {
114-
const imageMetadataArray = await generateImageMetadata({ params })
115-
return imageMetadataArray.map((imageMetadata, index) => {
116-
const idParam = (imageMetadata.id || index) + ''
117-
return getImageMetadata(imageMetadata, idParam)
118-
})
96+
const imageMetadataArray = await generateImageMetadata({ params: props.params })
97+
return Promise.all(imageMetadataArray.map((imageMetadata) => {
98+
const idParam = imageMetadata.id + ''
99+
return getImageMetadata(imageMetadata, idParam, resolvedParams)
100+
}))
119101
} else {
120102
return [getImageMetadata(imageModule, '')]
121103
}

test/e2e/app-dir/metadata-dynamic-routes/app/(group)/dynamic/[size]/apple-icon.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { ImageResponse } from 'next/og'
22

3-
// without id
43
export async function generateImageMetadata({ params }) {
54
return [
65
{
76
contentType: 'image/png',
87
size: { width: 48, height: 48 },
8+
id: '0',
99
},
1010
{
1111
contentType: 'image/png',
1212
size: { width: 64, height: 64 },
13+
id: '1',
1314
},
1415
]
1516
}

0 commit comments

Comments
 (0)