-
Auto Refetch with stale-time set to 1s)
+
Auto Refetch with stale-time set to {intervalMs}ms
This example is best experienced on your own machine, where you can open
multiple tabs to the same localhost server and see your changes
diff --git a/examples/react/auto-refetching/tsconfig.json b/examples/react/auto-refetching/tsconfig.json
new file mode 100644
index 0000000000..9575d0eab5
--- /dev/null
+++ b/examples/react/auto-refetching/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "Bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/package.json b/package.json
index 3b47732a5f..fe8ff21edb 100644
--- a/package.json
+++ b/package.json
@@ -79,8 +79,8 @@
},
"pnpm": {
"overrides": {
- "@types/react": "npm:types-react@rc",
- "@types/react-dom": "npm:types-react-dom@rc",
+ "@types/react": "^18.2.79",
+ "@types/react-dom": "^18.2.25",
"eslint": "$eslint"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 174206e816..11a41789ee 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -374,13 +374,13 @@ importers:
version: 4.0.2
next:
specifier: ^14.2.4
- version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.71.1)
+ version: 14.2.4(react-dom@19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522))(react@19.0.0-rc-4c2e457c7c-20240522)(sass@1.71.1)
react:
- specifier: ^18.2.0
- version: 18.3.1
+ specifier: 19.0.0-rc-4c2e457c7c-20240522
+ version: 19.0.0-rc-4c2e457c7c-20240522
react-dom:
- specifier: ^18.2.0
- version: 18.3.1(react@18.3.1)
+ specifier: 19.0.0-rc-4c2e457c7c-20240522
+ version: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522)
examples/react/basic:
dependencies:
@@ -22589,7 +22589,11 @@ snapshots:
jest-runner: 26.6.3
jest-runtime: 26.6.3
transitivePeerDependencies:
+ - bufferutil
+ - canvas
- supports-color
+ - ts-node
+ - utf-8-validate
'@jest/test-sequencer@27.5.1':
dependencies:
@@ -31337,7 +31341,11 @@ snapshots:
stack-utils: 2.0.6
throat: 5.0.0
transitivePeerDependencies:
+ - bufferutil
+ - canvas
- supports-color
+ - ts-node
+ - utf-8-validate
jest-circus@27.5.1:
dependencies:
From 335e6afec68d4d6c88bb93f001c5bc34f9a84561 Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Wed, 10 Jul 2024 13:12:17 +1000
Subject: [PATCH 02/10] Update infinite-query-with-max-pages,
load-more-infinite-scroll
---
docs/config.json | 2 +-
examples/react/auto-refetching/package.json | 4 +-
.../next-env.d.ts | 5 ++
.../package.json | 9 ++-
.../pages/api/{projects.js => projects.ts} | 5 +-
.../src/pages/{index.js => index.tsx} | 2 +-
.../tsconfig.json | 19 +++++
.../load-more-infinite-scroll/next-env.d.ts | 5 ++
.../load-more-infinite-scroll/package.json | 9 ++-
.../src/pages/{about.js => about.tsx} | 0
.../pages/api/{projects.js => projects.ts} | 5 +-
.../src/pages/{index.js => index.tsx} | 12 ++-
.../load-more-infinite-scroll/tsconfig.json | 19 +++++
package.json | 4 +-
pnpm-lock.yaml | 76 ++++++++++++-------
15 files changed, 132 insertions(+), 44 deletions(-)
create mode 100644 examples/react/infinite-query-with-max-pages/next-env.d.ts
rename examples/react/infinite-query-with-max-pages/src/pages/api/{projects.js => projects.ts} (78%)
rename examples/react/infinite-query-with-max-pages/src/pages/{index.js => index.tsx} (100%)
create mode 100644 examples/react/infinite-query-with-max-pages/tsconfig.json
create mode 100644 examples/react/load-more-infinite-scroll/next-env.d.ts
rename examples/react/load-more-infinite-scroll/src/pages/{about.js => about.tsx} (100%)
rename examples/react/load-more-infinite-scroll/src/pages/api/{projects.js => projects.ts} (78%)
rename examples/react/load-more-infinite-scroll/src/pages/{index.js => index.tsx} (91%)
create mode 100644 examples/react/load-more-infinite-scroll/tsconfig.json
diff --git a/docs/config.json b/docs/config.json
index 60cf48e8fe..d47c5bbb44 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -903,7 +903,7 @@
},
{
"label": "Basic",
- "to": "framework/solid/examples/basic-typescript"
+ "to": "framework/solid/examples/basic"
},
{
"label": "Basic w/ GraphQL-Request",
diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json
index 217f550af6..ddffc8fa06 100644
--- a/examples/react/auto-refetching/package.json
+++ b/examples/react/auto-refetching/package.json
@@ -16,8 +16,8 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
- "@types/react": "npm:types-react@rc",
- "@types/react-dom": "npm:types-react-dom@rc",
+ "@types/react": "^18.2.79",
+ "@types/react-dom": "^18.2.25",
"typescript": "5.3.3"
}
}
diff --git a/examples/react/infinite-query-with-max-pages/next-env.d.ts b/examples/react/infinite-query-with-max-pages/next-env.d.ts
new file mode 100644
index 0000000000..4f11a03dc6
--- /dev/null
+++ b/examples/react/infinite-query-with-max-pages/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json
index 636bb35bd0..0f8b95e2e6 100644
--- a/examples/react/infinite-query-with-max-pages/package.json
+++ b/examples/react/infinite-query-with-max-pages/package.json
@@ -12,8 +12,13 @@
"@tanstack/react-query-devtools": "^5.50.1",
"isomorphic-unfetch": "4.0.2",
"next": "^14.2.4",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "react": "^19.0.0-rc-4c2e457c7c-20240522",
+ "react-dom": "^19.0.0-rc-4c2e457c7c-20240522",
"react-intersection-observer": "^8.34.0"
+ },
+ "devDependencies": {
+ "@types/react": "npm:types-react@rc",
+ "@types/react-dom": "npm:types-react-dom@rc",
+ "typescript": "5.3.3"
}
}
diff --git a/examples/react/infinite-query-with-max-pages/src/pages/api/projects.js b/examples/react/infinite-query-with-max-pages/src/pages/api/projects.ts
similarity index 78%
rename from examples/react/infinite-query-with-max-pages/src/pages/api/projects.js
rename to examples/react/infinite-query-with-max-pages/src/pages/api/projects.ts
index a13fbee1aa..29b5228484 100644
--- a/examples/react/infinite-query-with-max-pages/src/pages/api/projects.js
+++ b/examples/react/infinite-query-with-max-pages/src/pages/api/projects.ts
@@ -1,5 +1,6 @@
-// an endpoint for getting projects data
-export default (req, res) => {
+import type { NextApiRequest, NextApiResponse } from 'next'
+
+export default (req: NextApiRequest, res: NextApiResponse) => {
const cursor = parseInt(req.query.cursor) || 0
const pageSize = 4
diff --git a/examples/react/infinite-query-with-max-pages/src/pages/index.js b/examples/react/infinite-query-with-max-pages/src/pages/index.tsx
similarity index 100%
rename from examples/react/infinite-query-with-max-pages/src/pages/index.js
rename to examples/react/infinite-query-with-max-pages/src/pages/index.tsx
index 8df4c0e8d9..29fac3d44a 100644
--- a/examples/react/infinite-query-with-max-pages/src/pages/index.js
+++ b/examples/react/infinite-query-with-max-pages/src/pages/index.tsx
@@ -1,8 +1,8 @@
import React from 'react'
import {
- useInfiniteQuery,
QueryClient,
QueryClientProvider,
+ useInfiniteQuery,
} from '@tanstack/react-query'
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
diff --git a/examples/react/infinite-query-with-max-pages/tsconfig.json b/examples/react/infinite-query-with-max-pages/tsconfig.json
new file mode 100644
index 0000000000..9575d0eab5
--- /dev/null
+++ b/examples/react/infinite-query-with-max-pages/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "Bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/examples/react/load-more-infinite-scroll/next-env.d.ts b/examples/react/load-more-infinite-scroll/next-env.d.ts
new file mode 100644
index 0000000000..4f11a03dc6
--- /dev/null
+++ b/examples/react/load-more-infinite-scroll/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json
index c35c1f54b9..9284407ad9 100644
--- a/examples/react/load-more-infinite-scroll/package.json
+++ b/examples/react/load-more-infinite-scroll/package.json
@@ -12,8 +12,13 @@
"@tanstack/react-query-devtools": "^5.50.1",
"isomorphic-unfetch": "4.0.2",
"next": "^14.2.4",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "react": "^19.0.0-rc-4c2e457c7c-20240522",
+ "react-dom": "^19.0.0-rc-4c2e457c7c-20240522",
"react-intersection-observer": "^8.34.0"
+ },
+ "devDependencies": {
+ "@types/react": "npm:types-react@rc",
+ "@types/react-dom": "npm:types-react-dom@rc",
+ "typescript": "5.3.3"
}
}
diff --git a/examples/react/load-more-infinite-scroll/src/pages/about.js b/examples/react/load-more-infinite-scroll/src/pages/about.tsx
similarity index 100%
rename from examples/react/load-more-infinite-scroll/src/pages/about.js
rename to examples/react/load-more-infinite-scroll/src/pages/about.tsx
diff --git a/examples/react/load-more-infinite-scroll/src/pages/api/projects.js b/examples/react/load-more-infinite-scroll/src/pages/api/projects.ts
similarity index 78%
rename from examples/react/load-more-infinite-scroll/src/pages/api/projects.js
rename to examples/react/load-more-infinite-scroll/src/pages/api/projects.ts
index 03492c0a15..493a453a96 100644
--- a/examples/react/load-more-infinite-scroll/src/pages/api/projects.js
+++ b/examples/react/load-more-infinite-scroll/src/pages/api/projects.ts
@@ -1,5 +1,6 @@
-// an endpoint for getting projects data
-export default (req, res) => {
+import type { NextApiRequest, NextApiResponse } from 'next'
+
+export default (req: NextApiRequest, res: NextApiResponse) => {
const cursor = parseInt(req.query.cursor) || 0
const pageSize = 5
diff --git a/examples/react/load-more-infinite-scroll/src/pages/index.js b/examples/react/load-more-infinite-scroll/src/pages/index.tsx
similarity index 91%
rename from examples/react/load-more-infinite-scroll/src/pages/index.js
rename to examples/react/load-more-infinite-scroll/src/pages/index.tsx
index b3b679be4e..9aa6742d15 100644
--- a/examples/react/load-more-infinite-scroll/src/pages/index.js
+++ b/examples/react/load-more-infinite-scroll/src/pages/index.tsx
@@ -34,13 +34,19 @@ function Example() {
hasPreviousPage,
} = useInfiniteQuery({
queryKey: ['projects'],
- queryFn: async ({ pageParam }) => {
+ queryFn: async ({
+ pageParam,
+ }): Promise<{
+ data: Array<{ name: string; id: number }>
+ previousId: number
+ nextId: number
+ }> => {
const response = await fetch(`/api/projects?cursor=${pageParam}`)
return await response.json()
},
initialPageParam: 0,
- getPreviousPageParam: (firstPage) => firstPage.previousId ?? undefined,
- getNextPageParam: (lastPage) => lastPage.nextId ?? undefined,
+ getPreviousPageParam: (firstPage) => firstPage.previousId,
+ getNextPageParam: (lastPage) => lastPage.nextId,
})
React.useEffect(() => {
diff --git a/examples/react/load-more-infinite-scroll/tsconfig.json b/examples/react/load-more-infinite-scroll/tsconfig.json
new file mode 100644
index 0000000000..9575d0eab5
--- /dev/null
+++ b/examples/react/load-more-infinite-scroll/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "Bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/package.json b/package.json
index fe8ff21edb..3b47732a5f 100644
--- a/package.json
+++ b/package.json
@@ -79,8 +79,8 @@
},
"pnpm": {
"overrides": {
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
+ "@types/react": "npm:types-react@rc",
+ "@types/react-dom": "npm:types-react-dom@rc",
"eslint": "$eslint"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 11a41789ee..f3499e6621 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -374,13 +374,23 @@ importers:
version: 4.0.2
next:
specifier: ^14.2.4
- version: 14.2.4(react-dom@19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522))(react@19.0.0-rc-4c2e457c7c-20240522)(sass@1.71.1)
+ version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.71.1)
react:
- specifier: 19.0.0-rc-4c2e457c7c-20240522
- version: 19.0.0-rc-4c2e457c7c-20240522
+ specifier: ^18.2.0
+ version: 18.3.1
react-dom:
- specifier: 19.0.0-rc-4c2e457c7c-20240522
- version: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522)
+ specifier: ^18.2.0
+ version: 18.3.1(react@18.3.1)
+ devDependencies:
+ '@types/react':
+ specifier: npm:types-react@rc
+ version: types-react@19.0.0-rc.1
+ '@types/react-dom':
+ specifier: npm:types-react-dom@rc
+ version: types-react-dom@19.0.0-rc.1
+ typescript:
+ specifier: 5.3.3
+ version: 5.3.3
examples/react/basic:
dependencies:
@@ -491,16 +501,26 @@ importers:
version: 4.0.2
next:
specifier: ^14.2.4
- version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.71.1)
+ version: 14.2.4(react-dom@19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522))(react@19.0.0-rc-4c2e457c7c-20240522)(sass@1.71.1)
react:
- specifier: ^18.2.0
- version: 18.3.1
+ specifier: ^19.0.0-rc-4c2e457c7c-20240522
+ version: 19.0.0-rc-4c2e457c7c-20240522
react-dom:
- specifier: ^18.2.0
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.0.0-rc-4c2e457c7c-20240522
+ version: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522)
react-intersection-observer:
specifier: ^8.34.0
- version: 8.34.0(react@18.3.1)
+ version: 8.34.0(react@19.0.0-rc-4c2e457c7c-20240522)
+ devDependencies:
+ '@types/react':
+ specifier: npm:types-react@rc
+ version: types-react@19.0.0-rc.1
+ '@types/react-dom':
+ specifier: npm:types-react-dom@rc
+ version: types-react-dom@19.0.0-rc.1
+ typescript:
+ specifier: 5.3.3
+ version: 5.3.3
examples/react/load-more-infinite-scroll:
dependencies:
@@ -515,16 +535,26 @@ importers:
version: 4.0.2
next:
specifier: ^14.2.4
- version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.71.1)
+ version: 14.2.4(react-dom@19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522))(react@19.0.0-rc-4c2e457c7c-20240522)(sass@1.71.1)
react:
- specifier: ^18.2.0
- version: 18.3.1
+ specifier: ^19.0.0-rc-4c2e457c7c-20240522
+ version: 19.0.0-rc-4c2e457c7c-20240522
react-dom:
- specifier: ^18.2.0
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.0.0-rc-4c2e457c7c-20240522
+ version: 19.0.0-rc-4c2e457c7c-20240522(react@19.0.0-rc-4c2e457c7c-20240522)
react-intersection-observer:
specifier: ^8.34.0
- version: 8.34.0(react@18.3.1)
+ version: 8.34.0(react@19.0.0-rc-4c2e457c7c-20240522)
+ devDependencies:
+ '@types/react':
+ specifier: npm:types-react@rc
+ version: types-react@19.0.0-rc.1
+ '@types/react-dom':
+ specifier: npm:types-react-dom@rc
+ version: types-react-dom@19.0.0-rc.1
+ typescript:
+ specifier: 5.3.3
+ version: 5.3.3
examples/react/nextjs:
dependencies:
@@ -22589,11 +22619,7 @@ snapshots:
jest-runner: 26.6.3
jest-runtime: 26.6.3
transitivePeerDependencies:
- - bufferutil
- - canvas
- supports-color
- - ts-node
- - utf-8-validate
'@jest/test-sequencer@27.5.1':
dependencies:
@@ -31341,11 +31367,7 @@ snapshots:
stack-utils: 2.0.6
throat: 5.0.0
transitivePeerDependencies:
- - bufferutil
- - canvas
- supports-color
- - ts-node
- - utf-8-validate
jest-circus@27.5.1:
dependencies:
@@ -36153,9 +36175,9 @@ snapshots:
transitivePeerDependencies:
- csstype
- react-intersection-observer@8.34.0(react@18.3.1):
+ react-intersection-observer@8.34.0(react@19.0.0-rc-4c2e457c7c-20240522):
dependencies:
- react: 18.3.1
+ react: 19.0.0-rc-4c2e457c7c-20240522
react-is@16.13.1: {}
From c37fca0ae60ad04c4102c588665305f4a845702a Mon Sep 17 00:00:00 2001
From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com>
Date: Wed, 10 Jul 2024 13:22:56 +1000
Subject: [PATCH 03/10] Upgrade react/nextjs
---
examples/react/nextjs/next-env.d.ts | 5 ++++
examples/react/nextjs/package.json | 9 ++++--
.../{Header/index.js => Header.tsx} | 0
.../{InfoBox/index.js => InfoBox.tsx} | 2 +-
.../{Layout/index.js => Layout.tsx} | 2 +-
.../{PostList/index.js => PostList.tsx} | 7 ++---
.../src/components/{index.js => index.ts} | 2 +-
examples/react/nextjs/src/hooks/index.js | 1 -
.../hooks/{usePosts/index.js => usePosts.ts} | 12 ++++++--
.../nextjs/src/pages/{_app.js => _app.tsx} | 3 +-
.../pages/{client-only.js => client-only.tsx} | 2 +-
.../nextjs/src/pages/{index.js => index.tsx} | 6 ++--
examples/react/nextjs/tsconfig.json | 19 +++++++++++++
pnpm-lock.yaml | 28 +++++++++++++++----
14 files changed, 74 insertions(+), 24 deletions(-)
create mode 100644 examples/react/nextjs/next-env.d.ts
rename examples/react/nextjs/src/components/{Header/index.js => Header.tsx} (100%)
rename examples/react/nextjs/src/components/{InfoBox/index.js => InfoBox.tsx} (83%)
rename examples/react/nextjs/src/components/{Layout/index.js => Layout.tsx} (93%)
rename examples/react/nextjs/src/components/{PostList/index.js => PostList.tsx} (89%)
rename examples/react/nextjs/src/components/{index.js => index.ts} (100%)
delete mode 100644 examples/react/nextjs/src/hooks/index.js
rename examples/react/nextjs/src/hooks/{usePosts/index.js => usePosts.ts} (58%)
rename examples/react/nextjs/src/pages/{_app.js => _app.tsx} (82%)
rename examples/react/nextjs/src/pages/{client-only.js => client-only.tsx} (79%)
rename examples/react/nextjs/src/pages/{index.js => index.tsx} (74%)
create mode 100644 examples/react/nextjs/tsconfig.json
diff --git a/examples/react/nextjs/next-env.d.ts b/examples/react/nextjs/next-env.d.ts
new file mode 100644
index 0000000000..4f11a03dc6
--- /dev/null
+++ b/examples/react/nextjs/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json
index 6c40ed726f..b8fd715f57 100644
--- a/examples/react/nextjs/package.json
+++ b/examples/react/nextjs/package.json
@@ -11,9 +11,14 @@
"@tanstack/react-query": "^5.50.1",
"@tanstack/react-query-devtools": "^5.50.1",
"next": "^14.2.4",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "react": "^19.0.0-rc-4c2e457c7c-20240522",
+ "react-dom": "^19.0.0-rc-4c2e457c7c-20240522",
"resolve-from": "^5.0.0",
"web-streams-polyfill": "^4.0.0"
+ },
+ "devDependencies": {
+ "@types/react": "npm:types-react@rc",
+ "@types/react-dom": "npm:types-react-dom@rc",
+ "typescript": "5.3.3"
}
}
diff --git a/examples/react/nextjs/src/components/Header/index.js b/examples/react/nextjs/src/components/Header.tsx
similarity index 100%
rename from examples/react/nextjs/src/components/Header/index.js
rename to examples/react/nextjs/src/components/Header.tsx
diff --git a/examples/react/nextjs/src/components/InfoBox/index.js b/examples/react/nextjs/src/components/InfoBox.tsx
similarity index 83%
rename from examples/react/nextjs/src/components/InfoBox/index.js
rename to examples/react/nextjs/src/components/InfoBox.tsx
index b0ff42f7d3..4bc1ecbbea 100644
--- a/examples/react/nextjs/src/components/InfoBox/index.js
+++ b/examples/react/nextjs/src/components/InfoBox.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-const InfoBox = ({ children }) => (
+const InfoBox = ({ children }: { children: React.ReactNode }) => (