Skip to content

Commit 820c910

Browse files
committed
test: add v8 React smoke apps
1 parent 9a5763b commit 820c910

12 files changed

Lines changed: 187 additions & 0 deletions

File tree

smoke/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules
2+
dist
3+
package-lock.json
4+
react-day-picker-*.tgz

smoke/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# v8 Release Smoke Apps
2+
3+
These minimal Vite apps test the packed `react-day-picker@8.10.2` tarball with
4+
React 18 and React 19.
5+
6+
From the repository root:
7+
8+
```sh
9+
corepack pnpm@8.6.2 build
10+
npm pack --pack-destination smoke
11+
```
12+
13+
Then run the React 18 smoke:
14+
15+
```sh
16+
cd smoke/react18-vite
17+
npm install
18+
npm run build
19+
npm run dev
20+
```
21+
22+
Open http://127.0.0.1:5188/.
23+
24+
Then run the React 19 smoke:
25+
26+
```sh
27+
cd smoke/react19-vite
28+
npm install
29+
npm run build
30+
npm run dev
31+
```
32+
33+
Open http://127.0.0.1:5189/.

smoke/react18-vite/index.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>DayPicker v8 React 18 Smoke</title>
7+
</head>
8+
<body>
9+
<div id="root"></div>
10+
<script type="module" src="/src/main.tsx"></script>
11+
</body>
12+
</html>

smoke/react18-vite/package.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"private": true,
3+
"type": "module",
4+
"scripts": {
5+
"dev": "vite --host 127.0.0.1 --port 5188",
6+
"typecheck": "tsc --noEmit",
7+
"build": "tsc --noEmit && vite build"
8+
},
9+
"dependencies": {
10+
"@types/react": "18.3.28",
11+
"@types/react-dom": "18.3.7",
12+
"date-fns": "2.30.0",
13+
"react": "18.2.0",
14+
"react-day-picker": "file:../react-day-picker-8.10.2.tgz",
15+
"react-dom": "18.2.0",
16+
"typescript": "5.9.3",
17+
"vite": "7.3.2"
18+
},
19+
"devDependencies": {}
20+
}

smoke/react18-vite/src/App.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { createRef, useState } from 'react';
2+
import { DayPicker, type ButtonProps, type DateRange } from 'react-day-picker';
3+
import 'react-day-picker/dist/style.css';
4+
5+
const buttonRef = createRef<HTMLButtonElement>();
6+
const buttonProps: ButtonProps = { ref: buttonRef, type: 'button' };
7+
void buttonProps;
8+
9+
export default function App() {
10+
const [single, setSingle] = useState<Date>();
11+
const [range, setRange] = useState<DateRange>();
12+
13+
return (
14+
<main>
15+
<DayPicker mode="single" selected={single} onSelect={setSingle} />
16+
<DayPicker mode="range" selected={range} onSelect={setRange} />
17+
</main>
18+
);
19+
}

smoke/react18-vite/src/main.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { StrictMode } from 'react';
2+
import { createRoot } from 'react-dom/client';
3+
4+
import App from './App';
5+
6+
createRoot(document.getElementById('root') as HTMLElement).render(
7+
<StrictMode>
8+
<App />
9+
</StrictMode>
10+
);

smoke/react18-vite/tsconfig.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"compilerOptions": {
3+
"strict": true,
4+
"jsx": "react-jsx",
5+
"module": "ESNext",
6+
"moduleResolution": "Bundler",
7+
"target": "ES2022",
8+
"lib": ["DOM", "DOM.Iterable", "ES2022"],
9+
"types": ["react", "react-dom"],
10+
"skipLibCheck": false,
11+
"noEmit": true
12+
},
13+
"include": ["src"]
14+
}

smoke/react19-vite/index.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>DayPicker v8 React 19 Smoke</title>
7+
</head>
8+
<body>
9+
<div id="root"></div>
10+
<script type="module" src="/src/main.tsx"></script>
11+
</body>
12+
</html>

smoke/react19-vite/package.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"private": true,
3+
"type": "module",
4+
"scripts": {
5+
"dev": "vite --host 127.0.0.1 --port 5189",
6+
"typecheck": "tsc --noEmit",
7+
"build": "tsc --noEmit && vite build"
8+
},
9+
"dependencies": {
10+
"@types/react": "19.2.14",
11+
"@types/react-dom": "19.2.3",
12+
"date-fns": "3.6.0",
13+
"react": "19.2.5",
14+
"react-day-picker": "file:../react-day-picker-8.10.2.tgz",
15+
"react-dom": "19.2.5",
16+
"typescript": "5.9.3",
17+
"vite": "7.3.2"
18+
},
19+
"devDependencies": {}
20+
}

smoke/react19-vite/src/App.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { createRef, useState } from 'react';
2+
import { DayPicker, type ButtonProps, type DateRange } from 'react-day-picker';
3+
import 'react-day-picker/dist/style.css';
4+
5+
const buttonRef = createRef<HTMLButtonElement>();
6+
const buttonProps: ButtonProps = { ref: buttonRef, type: 'button' };
7+
void buttonProps;
8+
9+
export default function App() {
10+
const [single, setSingle] = useState<Date>();
11+
const [range, setRange] = useState<DateRange>();
12+
13+
return (
14+
<main>
15+
<DayPicker mode="single" selected={single} onSelect={setSingle} />
16+
<DayPicker mode="range" selected={range} onSelect={setRange} />
17+
</main>
18+
);
19+
}

0 commit comments

Comments
 (0)