Skip to content

Commit 96956d1

Browse files
committed
upgrade to r3f v6, upgrade three/ts, remove some unused files, adaptive dpr!
1 parent 52d5c66 commit 96956d1

40 files changed

+357
-287
lines changed

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module.exports = {
3232
},
3333
overrides: [
3434
{
35-
files: [".eslintrc.js", "next.config.js", "tailwind.config.js"],
35+
files: [".eslintrc.js", "next.config.js"],
3636
env: {
3737
node: true,
3838
},

examples/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6+
"@react-three/fiber": "^6.0.14",
67
"@testing-library/jest-dom": "^5.11.4",
78
"@testing-library/react": "^11.1.0",
89
"@testing-library/user-event": "^12.1.10",
10+
"@types/three": "^0.127.1",
911
"customize-cra": "^1.0.0",
1012
"peer": "^0.6.1",
1113
"react": "0.0.0-experimental-10cc40018",
1214
"react-dom": "0.0.0-experimental-10cc40018",
1315
"react-router-dom": "^5.2.0",
1416
"react-scripts": "4.0.0",
15-
"react-three-fiber": "^5.2.1",
16-
"three": "^0.122.0",
17+
"three": "^0.127.0",
1718
"web-vitals": "^0.2.4"
1819
},
1920
"scripts": {

examples/yarn.lock

Lines changed: 61 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,6 +1198,13 @@
11981198
dependencies:
11991199
regenerator-runtime "^0.13.4"
12001200

1201+
"@babel/runtime@^7.13.10":
1202+
version "7.13.10"
1203+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
1204+
integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
1205+
dependencies:
1206+
regenerator-runtime "^0.13.4"
1207+
12011208
"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
12021209
version "7.9.0"
12031210
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.0.tgz#337eda67401f5b066a6f205a3113d4ac18ba495b"
@@ -1529,11 +1536,6 @@
15291536
"@types/yargs" "^15.0.0"
15301537
chalk "^4.0.0"
15311538

1532-
"@juggle/resize-observer@^3.2.0":
1533-
version "3.2.0"
1534-
resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.2.0.tgz#5e0b448d27fe3091bae6216456512c5904d05661"
1535-
integrity sha512-fsLxt0CHx2HCV9EL8lDoVkwHffsA0snUpddYjdLyXcG5E41xaamn9ZyQqOE9TUJdrRlH8/hjIf+UdOdDeKCUgg==
1536-
15371539
"@nodelib/[email protected]":
15381540
version "2.1.3"
15391541
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
@@ -1574,6 +1576,22 @@
15741576
schema-utils "^2.6.5"
15751577
source-map "^0.7.3"
15761578

1579+
"@react-three/fiber@^6.0.14":
1580+
version "6.0.14"
1581+
resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-6.0.14.tgz#1aed07dbeaa684912bde49c5c01667e80e99915f"
1582+
integrity sha512-wrHLFBGhruOitGCeT8sNtLO3qG4y0M1d0xAYpUNIXDD1/d/lrNlUvrTF9r7Q4sR0Reo1OGf2EMUg3CvFXpDYcg==
1583+
dependencies:
1584+
"@babel/runtime" "^7.13.10"
1585+
react-merge-refs "^1.1.0"
1586+
react-reconciler "^0.26.2"
1587+
react-three-fiber "0.0.0-deprecated"
1588+
react-use-measure "^2.0.4"
1589+
resize-observer-polyfill "^1.5.1"
1590+
scheduler "^0.20.2"
1591+
use-asset "^1.0.4"
1592+
utility-types "^3.10.0"
1593+
zustand "^3.3.3"
1594+
15771595
"@rollup/plugin-node-resolve@^7.1.1":
15781596
version "7.1.3"
15791597
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca"
@@ -2037,6 +2055,11 @@
20372055
dependencies:
20382056
"@types/jest" "*"
20392057

2058+
"@types/three@^0.127.1":
2059+
version "0.127.1"
2060+
resolved "https://registry.yarnpkg.com/@types/three/-/three-0.127.1.tgz#0978054e5daa6485946a3f1518a76412186ae81f"
2061+
integrity sha512-e90iYq3zde3axANg7BPZY0fKrez1AzveamIIFk23PMh9WtCx91geokDy+yEAIymdIldgUpvezAP6+zCV3oekXw==
2062+
20402063
"@types/uglify-js@*":
20412064
version "3.11.1"
20422065
resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb"
@@ -4149,9 +4172,9 @@ data-urls@^2.0.0:
41494172
whatwg-url "^8.0.0"
41504173

41514174
debounce@^1.2.0:
4152-
version "1.2.0"
4153-
resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131"
4154-
integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==
4175+
version "1.2.1"
4176+
resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
4177+
integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
41554178

41564179
[email protected], debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
41574180
version "2.6.9"
@@ -9585,14 +9608,14 @@ react-merge-refs@^1.1.0:
95859608
resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06"
95869609
integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==
95879610

9588-
9589-
version "0.26.1"
9590-
resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.26.1.tgz#860952dd359fd870f94895c254271e3a9de3b2d6"
9591-
integrity sha512-6E/CvH9zcDmHjhiNJlP0qJ8+3ufnY2b5RWs774Uy8XKWN0l6qfnlkz0XnDacxqj2rbJdq76w9dlFXjPPOQrmqA==
9611+
react-reconciler@^0.26.2:
9612+
version "0.26.2"
9613+
resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.26.2.tgz#bbad0e2d1309423f76cf3c3309ac6c96e05e9d91"
9614+
integrity sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==
95929615
dependencies:
95939616
loose-envify "^1.1.0"
95949617
object-assign "^4.1.1"
9595-
scheduler "^0.20.1"
9618+
scheduler "^0.20.2"
95969619

95979620
react-refresh@^0.8.3:
95989621
version "0.8.3"
@@ -9693,26 +9716,15 @@ [email protected]:
96939716
optionalDependencies:
96949717
fsevents "^2.1.3"
96959718

9696-
react-three-fiber@^5.2.1:
9697-
version "5.2.1"
9698-
resolved "https://registry.yarnpkg.com/react-three-fiber/-/react-three-fiber-5.2.1.tgz#2d33e3b1af039795b01fed0622318cced7173fcb"
9699-
integrity sha512-fhHbdVJre3E8SKbCjJOXA4xXDZIhSsIsBZcmhgSmwrVuMZ191wtE96fbxNKDADb3cunfMSrr4Her+vfOnoQ/oQ==
9700-
dependencies:
9701-
"@babel/runtime" "^7.12.1"
9702-
"@juggle/resize-observer" "^3.2.0"
9703-
react-merge-refs "^1.1.0"
9704-
react-reconciler "0.26.1"
9705-
react-use-measure "^2.0.3"
9706-
resize-observer-polyfill "^1.5.1"
9707-
scheduler "0.20.1"
9708-
tiny-emitter "^2.1.0"
9709-
use-asset "^0.1.4"
9710-
utility-types "^3.10.0"
9719+
9720+
version "0.0.0-deprecated"
9721+
resolved "https://registry.yarnpkg.com/react-three-fiber/-/react-three-fiber-0.0.0-deprecated.tgz#c737242487d824cf9520307308b7e4c4071a278f"
9722+
integrity sha512-EblIqTAsIpkYeM8bZtC4lcpTE0A2zCEGipFB52RgcQq/q+0oryrk7Sxt+sqhIjUu6xMNEVywV8dr74lz5yWO6A==
97119723

9712-
react-use-measure@^2.0.3:
9713-
version "2.0.3"
9714-
resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.0.3.tgz#7b56ae3ca19ccf62326933678625a8ff6b3f90a3"
9715-
integrity sha512-57O8Os9MbgFEHuOHOXNdPmBHhXjCBIwtB3YxyrM/MgaX44a1o97Mu9YqiOA6cAF8kXIw4fO3XK0r2Taa4SqaqQ==
9724+
react-use-measure@^2.0.4:
9725+
version "2.0.4"
9726+
resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.0.4.tgz#cb675b36eaeaf3681b94d5f5e08b2a1e081fedc9"
9727+
integrity sha512-7K2HIGaPMl3Q9ZQiEVjen3tRXl4UDda8LiTPy/QxP8dP2rl5gPBhf7mMH6MVjjRNv3loU7sNzey/ycPNnHVTxQ==
97169728
dependencies:
97179729
debounce "^1.2.0"
97189730

@@ -10300,10 +10312,10 @@ [email protected]:
1030010312
loose-envify "^1.1.0"
1030110313
object-assign "^4.1.1"
1030210314

10303-
scheduler@0.20.1, scheduler@^0.20.1:
10304-
version "0.20.1"
10305-
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c"
10306-
integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==
10315+
scheduler@^0.20.2:
10316+
version "0.20.2"
10317+
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
10318+
integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
1030710319
dependencies:
1030810320
loose-envify "^1.1.0"
1030910321
object-assign "^4.1.1"
@@ -11203,10 +11215,10 @@ [email protected], text-table@^0.2.0:
1120311215
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1120411216
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1120511217

11206-
three@^0.122.0:
11207-
version "0.122.0"
11208-
resolved "https://registry.yarnpkg.com/three/-/three-0.122.0.tgz#bd9ed8a8820074856e8ba7b63fe0a65176e01aeb"
11209-
integrity sha512-bgYMo0WdaQhf7DhLE8OSNN/rVFO5J4K1A2VeeKqoV4MjjuHjfCP6xLpg8Xedhns7NlEnN3sZ6VJROq19Qyl6Sg==
11218+
three@^0.127.0:
11219+
version "0.127.0"
11220+
resolved "https://registry.yarnpkg.com/three/-/three-0.127.0.tgz#c463f4d41b2c735dcf8e9e51a388815e80cd3791"
11221+
integrity sha512-wtgrn+mhYUbobxT7QN3GPdu3SRpSBQvwY6uOzLChWS7QE//f7paDU/+wlzbg+ngeIvBBqjBHSRuywTh8A99Jng==
1121011222

1121111223
throat@^5.0.0:
1121211224
version "5.0.0"
@@ -11243,11 +11255,6 @@ timsort@^0.3.0:
1124311255
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
1124411256
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
1124511257

11246-
tiny-emitter@^2.1.0:
11247-
version "2.1.0"
11248-
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
11249-
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
11250-
1125111258
tiny-invariant@^1.0.2:
1125211259
version "1.1.0"
1125311260
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
@@ -11603,10 +11610,10 @@ url@^0.11.0:
1160311610
punycode "1.3.2"
1160411611
querystring "0.2.0"
1160511612

11606-
use-asset@^0.1.4:
11607-
version "0.1.5"
11608-
resolved "https://registry.yarnpkg.com/use-asset/-/use-asset-0.1.5.tgz#196b6edf9f162bb900e0990888da3215514dec29"
11609-
integrity sha512-h1SDwd1OTbFPM076CiDrTOGk+9xVKBO6WRBo8Max/Bi9QxkNZqjOLO5VGEXwFPeXv2hkyDZv2V3RFI2cbkWLHw==
11613+
use-asset@^1.0.4:
11614+
version "1.0.4"
11615+
resolved "https://registry.yarnpkg.com/use-asset/-/use-asset-1.0.4.tgz#506caafc29f602890593799e58b577b70293a6e2"
11616+
integrity sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA==
1161011617
dependencies:
1161111618
fast-deep-equal "^3.1.3"
1161211619

@@ -12269,3 +12276,8 @@ yargs@^15.3.1, yargs@^15.4.1:
1226912276
which-module "^2.0.0"
1227012277
y18n "^4.0.0"
1227112278
yargs-parser "^18.1.2"
12279+
12280+
zustand@^3.3.3:
12281+
version "3.4.1"
12282+
resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.4.1.tgz#ff1bc8480facda3a4329510b8164aa5b821be133"
12283+
integrity sha512-Kb91vSjy5vwBQ/PQ1a5GE6naS3gCxCgpkujT9zqZSO85+gnvmzgqraMW3ao1I0jR4PwHBXtLTf26r9j7EXoUiQ==

next-env.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/// <reference types="next" />
2+
/// <reference types="three" />
23
/// <reference types="next/types/global" />

next.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const transpileModules = require("next-transpile-modules")([
55
"three",
66
"drei",
77
"postprocessing",
8-
"react-three-fiber",
8+
"@react-three/fiber",
99
"use-cannon",
1010
]);
1111

package.json

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
"types": "main.d.ts",
2323
"scripts": {
2424
"build": "rimraf dist && mkdir dist && rollup -c && yarn copy && tsc && yarn pack-dist",
25-
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
25+
"lint": "eslint . --ext .ts,.tsx",
2626
"process-gltf": "./scripts/process-gltf.sh",
27-
"eslint": "eslint --fix {src,examples/src}/**/*.{js,ts,jsx,tsx}",
27+
"eslint": "eslint --fix {src,examples/src}/**/*.{ts,tsx}",
2828
"copy": "copyfiles package.json readme.md LICENSE dist && json -I -f dist/package.json -e \"this.private=false; this.devDependencies=undefined; this.optionalDependencies=undefined; this.scripts=undefined; this.husky=undefined; this.prettier=undefined; this.jest=undefined; this['lint-staged']=undefined;\"",
2929
"pack-dist": "cd dist && yarn pack && mv *.tgz .. && cd .."
3030
},
@@ -34,7 +34,7 @@
3434
}
3535
},
3636
"lint-staged": {
37-
"*.{js,jsx,ts,tsx}": [
37+
"*.{ts,tsx}": [
3838
"eslint --fix"
3939
]
4040
},
@@ -45,32 +45,33 @@
4545
"@emotion/core": "^10.0.28",
4646
"@emotion/styled": "^10.0.27",
4747
"@juggle/resize-observer": "^3.2.0",
48-
"@react-three/cannon": "^0.5.3",
49-
"@react-three/drei": "^3.4.0",
50-
"@react-three/xr": "^1.1.1",
48+
"@react-three/cannon": "^1.1.0",
49+
"@react-three/drei": "^4.1.8",
50+
"@react-three/fiber": "^6.0.14",
51+
"@react-three/xr": "^3.0.1",
5152
"nipplejs": "^0.8.7",
5253
"node-fetch": "^2.6.1",
5354
"peerjs": "^1.3.1",
5455
"react-device-detect": "^1.13.1",
5556
"react-spring": "^8.0.27",
56-
"react-three-fiber": "^5.3.18",
5757
"valtio": "^0.7.0"
5858
},
5959
"peerDependencies": {
6060
"react": ">=17.0",
61-
"three": ">=0.122"
61+
"three": ">=0.127"
6262
},
6363
"devDependencies": {
6464
"@babel/plugin-transform-runtime": "^7.12.1",
6565
"@babel/preset-env": "^7.12.1",
6666
"@babel/preset-react": "^7.12.5",
6767
"@babel/preset-typescript": "^7.12.1",
68-
"@react-three/gltfjsx": "^3.1.3",
68+
"@react-three/gltfjsx": "^4.1.5",
6969
"@rollup/plugin-commonjs": "^16.0.0",
7070
"@types/node": "^14.0.13",
7171
"@types/node-fetch": "^2.5.7",
7272
"@types/peerjs": "^1.1.0",
7373
"@types/react": "^16.9.36",
74+
"@types/three": "^0.127.1",
7475
"@typescript-eslint/eslint-plugin": "^3.2.0",
7576
"@typescript-eslint/parser": "^3.2.0",
7677
"babel-plugin-glsl": "^1.0.0",
@@ -93,7 +94,7 @@
9394
"rollup-plugin-babel": "^4.4.0",
9495
"rollup-plugin-json": "^4.0.0",
9596
"rollup-plugin-node-resolve": "^5.2.0",
96-
"three": "^0.122.0",
97-
"typescript": "^3.9.5"
97+
"three": "^0.127.0",
98+
"typescript": "^4.2.4"
9899
}
99100
}

src/components/Arrow.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useLoader } from "react-three-fiber";
1+
import { useLoader } from "@react-three/fiber";
22
import * as THREE from "three";
33

44
type ArrowProps = { dark?: boolean } & JSX.IntrinsicElements["group"];

src/components/Audio.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as THREE from "three";
22
import { useEffect, useMemo, useState } from "react";
3-
import { GroupProps, useThree } from "react-three-fiber";
3+
import { GroupProps, useThree } from "@react-three/fiber";
44
import { AudioAnalyser, Vector3 } from "three";
55

66
type AudioProps = {
@@ -24,7 +24,7 @@ export const Audio = (props: AudioProps) => {
2424
} = props;
2525

2626
const [speaker, setSpeaker] = useState<THREE.PositionalAudio>();
27-
const { camera } = useThree();
27+
const camera = useThree((state) => state.camera);
2828

2929
const audio = useMemo(() => {
3030
const a = document.createElement("audio");

src/components/Background.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { Color } from "three";
22
import { useEffect, useState } from "react";
3-
import { useThree } from "react-three-fiber";
3+
import { useThree } from "@react-three/fiber";
44

55
type BackgroundProps = {
66
color: Color | string | number;
77
};
88

99
export const Background = (props: BackgroundProps) => {
1010
const { color } = props;
11-
const { scene } = useThree();
11+
const scene = useThree((state) => state.scene);
1212
const [setup, setSetup] = useState(false);
1313

1414
useEffect(() => {

src/components/Fog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useEffect } from "react";
2-
import { useThree } from "react-three-fiber";
2+
import { useThree } from "@react-three/fiber";
33
import * as THREE from "three";
44

55
type FogProps = {
@@ -11,7 +11,7 @@ type FogProps = {
1111
export const Fog = (props: FogProps) => {
1212
const { color, near, far } = props;
1313

14-
const { scene } = useThree();
14+
const scene = useThree((state) => state.scene);
1515

1616
useEffect(() => {
1717
scene.fog = new THREE.Fog(color, near, far);

0 commit comments

Comments
 (0)