From edd8d9da78b20050095f5e5801b29b44b3e3400d Mon Sep 17 00:00:00 2001 From: Henrik Wenz Date: Sun, 4 Sep 2022 10:07:49 +0200 Subject: [PATCH 1/2] Update react --- examples/image-component/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/image-component/package.json b/examples/image-component/package.json index f9170ae254fa3b5..65f904f0513c2f6 100644 --- a/examples/image-component/package.json +++ b/examples/image-component/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "next": "latest", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "react": "^18.2.0", + "react-dom": "^18.2.0" } } From 45dbdf85f8235479e5c25d454515910981f17c3f Mon Sep 17 00:00:00 2001 From: Henrik Wenz Date: Sun, 4 Sep 2022 10:20:24 +0200 Subject: [PATCH 2/2] Migrate to typescript --- .../{view-source.js => view-source.tsx} | 12 ++++++++---- examples/image-component/package.json | 5 +++++ examples/image-component/pages/_app.js | 5 ----- examples/image-component/pages/_app.tsx | 6 ++++++ .../pages/{background.js => background.tsx} | 12 ++++++------ .../pages/{color.js => color.tsx} | 6 +++--- .../pages/{index.js => index.tsx} | 7 +++++-- .../pages/{layout-fill.js => layout-fill.tsx} | 2 +- .../{layout-fixed.js => layout-fixed.tsx} | 2 +- ...yout-intrinsic.js => layout-intrinsic.tsx} | 2 +- ...ut-responsive.js => layout-responsive.tsx} | 2 +- .../pages/{placeholder.js => placeholder.tsx} | 2 +- .../pages/{shimmer.js => shimmer.tsx} | 6 +++--- examples/image-component/tsconfig.json | 19 +++++++++++++++++++ 14 files changed, 60 insertions(+), 28 deletions(-) rename examples/image-component/components/{view-source.js => view-source.tsx} (77%) delete mode 100644 examples/image-component/pages/_app.js create mode 100644 examples/image-component/pages/_app.tsx rename examples/image-component/pages/{background.js => background.tsx} (59%) rename examples/image-component/pages/{color.js => color.tsx} (85%) rename examples/image-component/pages/{index.js => index.tsx} (95%) rename examples/image-component/pages/{layout-fill.js => layout-fill.tsx} (94%) rename examples/image-component/pages/{layout-fixed.js => layout-fixed.tsx} (87%) rename examples/image-component/pages/{layout-intrinsic.js => layout-intrinsic.tsx} (86%) rename examples/image-component/pages/{layout-responsive.js => layout-responsive.tsx} (86%) rename examples/image-component/pages/{placeholder.js => placeholder.tsx} (88%) rename examples/image-component/pages/{shimmer.js => shimmer.tsx} (89%) create mode 100644 examples/image-component/tsconfig.json diff --git a/examples/image-component/components/view-source.js b/examples/image-component/components/view-source.tsx similarity index 77% rename from examples/image-component/components/view-source.js rename to examples/image-component/components/view-source.tsx index be1d66f32389b0f..7b316f9d0cc5fe5 100644 --- a/examples/image-component/components/view-source.js +++ b/examples/image-component/components/view-source.tsx @@ -1,13 +1,17 @@ -import { svg, arm } from './view-source.module.css' +import styles from './view-source.module.css' -const ViewSource = ({ pathname }) => ( +type ViewSourceProps = { + pathname: string +} + +const ViewSource = ({ pathname }: ViewSourceProps) => ( ( > diff --git a/examples/image-component/package.json b/examples/image-component/package.json index 65f904f0513c2f6..e800958c5882982 100644 --- a/examples/image-component/package.json +++ b/examples/image-component/package.json @@ -9,5 +9,10 @@ "next": "latest", "react": "^18.2.0", "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/node": "18.7.14", + "@types/react": "16.9.17", + "typescript": "4.8.2" } } diff --git a/examples/image-component/pages/_app.js b/examples/image-component/pages/_app.js deleted file mode 100644 index 14b610ee850f674..000000000000000 --- a/examples/image-component/pages/_app.js +++ /dev/null @@ -1,5 +0,0 @@ -import '../app.css' - -export default function MyApp({ Component, pageProps }) { - return -} diff --git a/examples/image-component/pages/_app.tsx b/examples/image-component/pages/_app.tsx new file mode 100644 index 000000000000000..bde43d8134e74d8 --- /dev/null +++ b/examples/image-component/pages/_app.tsx @@ -0,0 +1,6 @@ +import type { AppProps } from 'next/app' +import '../app.css' + +export default function MyApp({ Component, pageProps }: AppProps) { + return +} diff --git a/examples/image-component/pages/background.js b/examples/image-component/pages/background.tsx similarity index 59% rename from examples/image-component/pages/background.js rename to examples/image-component/pages/background.tsx index b3e05ab83890cdb..d3c0d8dc1226708 100644 --- a/examples/image-component/pages/background.js +++ b/examples/image-component/pages/background.tsx @@ -1,11 +1,11 @@ import Image from 'next/image' import ViewSource from '../components/view-source' -import { bgWrap, bgText } from '../styles.module.css' +import styles from '../styles.module.css' -const Background = () => ( +const BackgroundPage = () => (
- -
+ +
Mountains ( quality={100} />
-

+

Image Component
as a Background @@ -22,4 +22,4 @@ const Background = () => (

) -export default Background +export default BackgroundPage diff --git a/examples/image-component/pages/color.js b/examples/image-component/pages/color.tsx similarity index 85% rename from examples/image-component/pages/color.js rename to examples/image-component/pages/color.tsx index dca5d6d3b9722b0..b04797028014530 100644 --- a/examples/image-component/pages/color.js +++ b/examples/image-component/pages/color.tsx @@ -5,20 +5,20 @@ import ViewSource from '../components/view-source' const keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' -const triplet = (e1, e2, e3) => +const triplet = (e1: number, e2: number, e3: number) => keyStr.charAt(e1 >> 2) + keyStr.charAt(((e1 & 3) << 4) | (e2 >> 4)) + keyStr.charAt(((e2 & 15) << 2) | (e3 >> 6)) + keyStr.charAt(e3 & 63) -const rgbDataURL = (r, g, b) => +const rgbDataURL = (r: number, g: number, b: number) => `data:image/gif;base64,R0lGODlhAQABAPAA${ triplet(0, r, g) + triplet(b, 255, 255) }/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==` const Color = () => (
- +

Image Component With Color Data URL

Dog +const Code = (props: PropsWithChildren) => ( + +) const Index = () => (
- +

Image Component with Next.js

diff --git a/examples/image-component/pages/layout-fill.js b/examples/image-component/pages/layout-fill.tsx similarity index 94% rename from examples/image-component/pages/layout-fill.js rename to examples/image-component/pages/layout-fill.tsx index 526723d427f8419..dca195e8096c426 100644 --- a/examples/image-component/pages/layout-fill.js +++ b/examples/image-component/pages/layout-fill.tsx @@ -4,7 +4,7 @@ import mountains from '../public/mountains.jpg' const Fill = () => (

- +

Image Component With Layout Fill

Mountains diff --git a/examples/image-component/pages/layout-fixed.js b/examples/image-component/pages/layout-fixed.tsx similarity index 87% rename from examples/image-component/pages/layout-fixed.js rename to examples/image-component/pages/layout-fixed.tsx index cd5e26d8b4e3595..bff5459735662fb 100644 --- a/examples/image-component/pages/layout-fixed.js +++ b/examples/image-component/pages/layout-fixed.tsx @@ -4,7 +4,7 @@ import mountains from '../public/mountains.jpg' const Fixed = () => (
- +

Image Component With Layout Fixed

Mountains (
- +

Image Component With Layout Intrinsic

Mountains (
- +

Image Component With Layout Responsive

Mountains (
- +

Image Component With Placeholder Blur

Mountains ` +const shimmer = (w: number, h: number) => ` @@ -15,14 +15,14 @@ const shimmer = (w, h) => ` ` -const toBase64 = (str) => +const toBase64 = (str: string) => typeof window === 'undefined' ? Buffer.from(str).toString('base64') : window.btoa(str) const Shimmer = () => (
- +

Image Component With Shimmer Data URL