From 8720b097df7d0fe167060c7e0c414bceab513e56 Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 18 Aug 2021 18:29:38 -0400 Subject: [PATCH 1/4] Fix blur placeholder when JS is disabled --- packages/next/client/image.tsx | 40 +++++++++++++++++----------------- packages/next/types/misc.d.ts | 8 +++++++ 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/packages/next/client/image.tsx b/packages/next/client/image.tsx index 951d8c60c6d6188..de6525b37f602e8 100644 --- a/packages/next/client/image.tsx +++ b/packages/next/client/image.tsx @@ -597,26 +597,6 @@ export default function Image({ ) : null} ) : null} - {!isVisible && ( - - )} + + {priority ? ( // Note how we omit the `href` attribute, as it would only be relevant // for browsers that do not support `imagesrcset`, and in those cases diff --git a/packages/next/types/misc.d.ts b/packages/next/types/misc.d.ts index 646f729ae822558..a2ff33386efb6f2 100644 --- a/packages/next/types/misc.d.ts +++ b/packages/next/types/misc.d.ts @@ -266,3 +266,11 @@ declare module 'watchpack' { export default Watchpack } + +// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/38694 +import 'react' +declare module 'react' { + interface ImgHTMLAttributes extends HTMLAttributes { + loading?: 'auto' | 'eager' | 'lazy' + } +} From eafd37d763aaefee3c3670144e6703210f500a14 Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 18 Aug 2021 18:50:09 -0400 Subject: [PATCH 2/4] Fix types --- packages/next/types/index.d.ts | 5 +++++ packages/next/types/misc.d.ts | 8 -------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/next/types/index.d.ts b/packages/next/types/index.d.ts index 4abaab83eb3cf9f..b1bc5ea2e074451 100644 --- a/packages/next/types/index.d.ts +++ b/packages/next/types/index.d.ts @@ -40,6 +40,11 @@ declare module 'react' { interface LinkHTMLAttributes extends HTMLAttributes { nonce?: string } + + // support + interface ImgHTMLAttributes extends HTMLAttributes { + loading?: 'auto' | 'eager' | 'lazy' + } } export type Redirect = diff --git a/packages/next/types/misc.d.ts b/packages/next/types/misc.d.ts index a2ff33386efb6f2..646f729ae822558 100644 --- a/packages/next/types/misc.d.ts +++ b/packages/next/types/misc.d.ts @@ -266,11 +266,3 @@ declare module 'watchpack' { export default Watchpack } - -// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/38694 -import 'react' -declare module 'react' { - interface ImgHTMLAttributes extends HTMLAttributes { - loading?: 'auto' | 'eager' | 'lazy' - } -} From 132a704ff292a4429db677be420a7835bfa0d35a Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 18 Aug 2021 19:25:30 -0400 Subject: [PATCH 3/4] Fix test --- test/integration/image-component/default/test/index.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/image-component/default/test/index.test.js b/test/integration/image-component/default/test/index.test.js index 555a2f134fe4ce1..1d2e5eb6f79cb9e 100644 --- a/test/integration/image-component/default/test/index.test.js +++ b/test/integration/image-component/default/test/index.test.js @@ -151,7 +151,7 @@ function runTests(mode) { const els = [].slice.apply($html('img')) expect(els.length).toBe(2) - const [noscriptEl, el] = els + const [el, noscriptEl] = els expect(noscriptEl.attribs.src).toBeDefined() expect(noscriptEl.attribs.srcset).toBeDefined() From ce1bdb05f797254fa3e1e556cabf8acdac9153da Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 18 Aug 2021 23:21:16 -0400 Subject: [PATCH 4/4] Fix another test --- test/integration/export-image-loader/test/index.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/export-image-loader/test/index.test.js b/test/integration/export-image-loader/test/index.test.js index ebc63aa6b93aef3..966afc18e7d6ce4 100644 --- a/test/integration/export-image-loader/test/index.test.js +++ b/test/integration/export-image-loader/test/index.test.js @@ -74,7 +74,7 @@ describe('Export with custom loader next/image component', () => { it('should contain img element with same src in html output', async () => { const html = await fs.readFile(join(outdir, 'index.html')) const $ = cheerio.load(html) - expect($('img[alt="icon"]').attr('src')).toBe('/custom/i.png') + expect($('img[src="/custom/o.png"]')).toBeDefined() }) afterAll(async () => {