Skip to content

Commit

Permalink
Add viewport field userScalable
Browse files Browse the repository at this point in the history
  • Loading branch information
huozhi committed Mar 2, 2023
1 parent 9c32adc commit 139116d
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 3 deletions.
1 change: 1 addition & 0 deletions packages/next/src/lib/metadata/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export const ViewPortKeys: { [k in keyof Viewport]: string } = {
minimumScale: 'minimum-scale',
maximumScale: 'maximum-scale',
viewportFit: 'viewport-fit',
userScalable: 'user-scalable',
interactiveWidget: 'interactive-widget',
} as const

Expand Down
3 changes: 2 additions & 1 deletion packages/next/src/lib/metadata/resolve-metadata.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ describe('accumulateMetadata', () => {
minimumScale: 1,
maximumScale: 1,
viewportFit: 'cover',
userScalable: false,
interactiveWidget: 'overlays-content',
},
},
Expand All @@ -204,7 +205,7 @@ describe('accumulateMetadata', () => {
const metadata = await accumulateMetadata(metadataItems)
expect(metadata).toMatchObject({
viewport:
'width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=overlays-content',
'width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, viewport-fit=cover, user-scalable=no, interactive-widget=overlays-content',
})
})
})
Expand Down
6 changes: 4 additions & 2 deletions packages/next/src/lib/metadata/resolvers/resolve-basics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,11 @@ export const resolveViewport: FieldResolver<'viewport'> = (viewport) => {
resolved = ''
for (const viewportKey_ in ViewPortKeys) {
const viewportKey = viewportKey_ as keyof Viewport
if (viewport[viewportKey]) {
let value = viewport[viewportKey]
if (typeof value === 'boolean') value = value ? 'yes' : 'no'
if (typeof value !== undefined) {
if (resolved) resolved += ', '
resolved += `${ViewPortKeys[viewportKey]}=${viewport[viewportKey]}`
resolved += `${ViewPortKeys[viewportKey]}=${value}`
}
}
}
Expand Down
1 change: 1 addition & 0 deletions packages/next/src/lib/metadata/types/extra-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export type Viewport = {
initialScale?: number
minimumScale?: number
maximumScale?: number
userScalable?: boolean
viewportFit?: 'auto' | 'cover' | 'contain'
interactiveWidget?: 'resizes-visual' | 'resizes-content' | 'overlays-content'
}
Expand Down

0 comments on commit 139116d

Please sign in to comment.