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() {
)}
+ {/* */}
);
}