diff --git a/package.json b/package.json index 724e1ac..ec23cec 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "tsx": "^4.7.3", "vite-plugin-static-copy": "^1.0.4", "vite-plugin-vsharp": "^1.7.3", - "vite-plugin-webp-generator": "^0.0.5", "wisp-server-node": "^1.0.6", "ws": "^8.17.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1eefbd1..f093b36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,6 +101,9 @@ dependencies: react-icons: specifier: ^4.12.0 version: 4.12.0(react@18.3.1) + react-player: + specifier: ^2.16.0 + version: 2.16.0(react@18.3.1) react-toastify: specifier: ^9.1.3 version: 9.1.3(react-dom@18.3.1)(react@18.3.1) @@ -3222,6 +3225,11 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: false + /default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -5927,6 +5935,10 @@ packages: strip-bom: 2.0.0 dev: false + /load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + dev: false + /localforage@1.10.0: resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} dependencies: @@ -6089,6 +6101,10 @@ packages: - supports-color dev: false + /memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + dev: false + /merge-stream@1.0.1: resolution: {integrity: sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==} dependencies: @@ -7461,6 +7477,19 @@ packages: /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + /react-player@2.16.0(react@18.3.1): + resolution: {integrity: sha512-mAIPHfioD7yxO0GNYVFD1303QFtI3lyyQZLY229UEAp/a10cSW+hPcakg0Keq8uWJxT2OiT/4Gt+Lc9bD6bJmQ==} + peerDependencies: + react: '>=16.6.0' + dependencies: + deepmerge: 4.3.1 + load-script: 1.0.0 + memoize-one: 5.2.1 + prop-types: 15.8.1 + react: 18.3.1 + react-fast-compare: 3.2.2 + dev: false + /react-side-effect@2.1.2(react@18.3.1): resolution: {integrity: sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==} peerDependencies: diff --git a/public/bg.mp4 b/public/bg.mp4 new file mode 100644 index 0000000..9f77be6 Binary files /dev/null and b/public/bg.mp4 differ diff --git a/src/Video.tsx b/src/Video.tsx new file mode 100644 index 0000000..81773c1 --- /dev/null +++ b/src/Video.tsx @@ -0,0 +1,30 @@ +import { useRef, useEffect } from "preact/hooks"; + +export default function Video({ src, isMuted }) { + const refVideo = useRef(null); + + useEffect(() => { + if (!refVideo.current) { + return; + } + + if (isMuted) { + //open bug since 2017 that you cannot set muted in video element https://github.com/facebook/react/issues/10389 + refVideo.current.defaultMuted = true; + refVideo.current.muted = true; + } + + refVideo.current.srcObject = src; + }, [src]); + + return ( + + ); +} diff --git a/src/index.tsx b/src/index.tsx index b9d538c..8045645 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -59,6 +59,12 @@ export default function App() { )} + {/* */} ); }