mirror of
https://github.com/rive-app/rive-react.git
synced 2026-03-13 08:22:30 +08:00
adding resize example
This commit is contained in:
32
examples/resize-test/README.md
Normal file
32
examples/resize-test/README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# To run
|
||||
|
||||
This is a basic showcase of a resize issue we have, to test this locally with rive-react changes
|
||||
|
||||
1. run `npm start`
|
||||
2. run `npm run build` for the rive-react project
|
||||
|
||||
If you want to also test local wasm changes:
|
||||
|
||||
1. update `rive-react`/package.json to a locally checked out version of rive-wasm's canvas_single
|
||||
`"@rive-app/canvas": "../rive-wasm/js/npm/canvas_single",`
|
||||
2. cd to `rive-wasm/js` & run `npm run dev` (keep this going as it will watch for changes)
|
||||
3. run `npm start`
|
||||
4. run `npm run build` for the rive-react project
|
||||
|
||||
|
||||
# Resize issue:
|
||||
|
||||
update parameters in `utils.ts` to see this for yourself.
|
||||
|
||||
Resizing from window.resize
|
||||
- bottom animation moves slower than rest
|
||||
- cannot deal with the animations container resizing, unless its linked to the window resizing
|
||||
Resizing from ResizeObserver
|
||||
- all animations move together super smooth when resizing
|
||||
- top two animations flicker to white (blank canvas) when resizing
|
||||
Resizing form ResizeObserver - throttled (current default)
|
||||
- all animations move "together"
|
||||
- resizing looks pretty smooth, but everything lags behind a bit.
|
||||
|
||||
# Other issues
|
||||
its also very slow resizing when dev tools is open, its fine when closed though.
|
||||
36
examples/resize-test/package.json
Normal file
36
examples/resize-test/package.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "basic-with-hook",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@testing-library/jest-dom": "^5.13.0",
|
||||
"@testing-library/react": "^11.2.7",
|
||||
"@testing-library/user-event": "^12.8.3",
|
||||
"react": "file:../../node_modules/react",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-scripts": "4.0.3",
|
||||
"rive-react": "file:../..",
|
||||
"web-vitals": "^1.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "SKIP_PREFLIGHT_CHECK=true react-scripts start"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
||||
17
examples/resize-test/public/index.html
Normal file
17
examples/resize-test/public/index.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta
|
||||
name="description"
|
||||
content="Web site created using create-react-app"
|
||||
/>
|
||||
<title>Rive React - Basic with Hook</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
examples/resize-test/public/magic-ball.riv
Normal file
BIN
examples/resize-test/public/magic-ball.riv
Normal file
Binary file not shown.
BIN
examples/resize-test/public/poison-loader.riv
Normal file
BIN
examples/resize-test/public/poison-loader.riv
Normal file
Binary file not shown.
30
examples/resize-test/src/App.js
Normal file
30
examples/resize-test/src/App.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import { useRive } from 'rive-react';
|
||||
|
||||
function App() {
|
||||
const params = {
|
||||
src: 'poison-loader.riv',
|
||||
autoplay: true,
|
||||
};
|
||||
|
||||
const { RiveComponent: RiveComponentBasic } = useRive(params);
|
||||
const { RiveComponent: RiveComponentBasic2 } = useRive(params);
|
||||
const { RiveComponent: RiveComponentBasic3 } = useRive(params);
|
||||
|
||||
return (
|
||||
<>
|
||||
<div style={{ width: '100%' }}>
|
||||
<div style={{ height: '300px', width: '100%' }}>
|
||||
<RiveComponentBasic />
|
||||
</div>
|
||||
<div style={{ height: '300px', width: '100%' }}>
|
||||
<RiveComponentBasic2 />
|
||||
</div>
|
||||
<div style={{ height: '300px', width: '100%' }}>
|
||||
<RiveComponentBasic3 />
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
||||
10
examples/resize-test/src/index.js
Normal file
10
examples/resize-test/src/index.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import App from './App';
|
||||
|
||||
ReactDOM.render(
|
||||
<React.StrictMode>
|
||||
<App />
|
||||
</React.StrictMode>,
|
||||
document.getElementById('root')
|
||||
);
|
||||
Reference in New Issue
Block a user