diff --git a/package-lock.json b/package-lock.json index 4ba5857..fc3ff92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@mui/icons-material": "^5.11.11", "@mui/lab": "^5.0.0-alpha.163", "@mui/material": "^5.11.13", + "@preact/signals-react": "^2.2.0", "@reduxjs/toolkit": "^1.9.3", "compressorjs": "^1.2.1", "dompurify": "^3.0.6", @@ -1463,6 +1464,33 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/@preact/signals-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-2.2.0.tgz", + "integrity": "sha512-EPYlhXqqcOUxz2gTQGt4rtK6X7Jr04517DcJVZ4I5a7Gxy39haK24uFeVWtiU/tnEReRFcxpQN6poYra1jf68A==", + "license": "MIT", + "dependencies": { + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x" + } + }, "node_modules/@reduxjs/toolkit": { "version": "1.9.5", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", @@ -5528,6 +5556,20 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, + "@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==" + }, + "@preact/signals-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-2.2.0.tgz", + "integrity": "sha512-EPYlhXqqcOUxz2gTQGt4rtK6X7Jr04517DcJVZ4I5a7Gxy39haK24uFeVWtiU/tnEReRFcxpQN6poYra1jf68A==", + "requires": { + "@preact/signals-core": "^1.7.0", + "use-sync-external-store": "^1.2.0" + } + }, "@reduxjs/toolkit": { "version": "1.9.5", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", diff --git a/package.json b/package.json index b753d69..90535ef 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@mui/icons-material": "^5.11.11", "@mui/lab": "^5.0.0-alpha.163", "@mui/material": "^5.11.13", + "@preact/signals-react": "^2.2.0", "@reduxjs/toolkit": "^1.9.3", "compressorjs": "^1.2.1", "dompurify": "^3.0.6", diff --git a/src/components/common/VideoPlayer/Components/LoadingVideo.tsx b/src/components/common/VideoPlayer/Components/LoadingVideo.tsx index d7d57ff..2eea3df 100644 --- a/src/components/common/VideoPlayer/Components/LoadingVideo.tsx +++ b/src/components/common/VideoPlayer/Components/LoadingVideo.tsx @@ -2,7 +2,6 @@ import { Box, CircularProgress, Typography } from "@mui/material"; import { setVideoPlaying } from "../../../../state/features/globalSlice.ts"; import { useDispatch } from "react-redux"; import { PlayArrow } from "@mui/icons-material"; -import { playing } from "../VideoPlayer-State.ts"; export interface LoadingVideoProps { isLoading: boolean; @@ -103,7 +102,7 @@ export const LoadingVideo = ({ onClick={() => { if (from === "create") return; dispatch(setVideoPlaying(null)); - playing.value = true; // makes autoplay after video loaded work properly + togglePlay(); }} sx={{ diff --git a/src/components/common/VideoPlayer/Components/VideoControls-State.ts b/src/components/common/VideoPlayer/Components/VideoControls-State.ts index 7cc6388..b9d15fa 100644 --- a/src/components/common/VideoPlayer/Components/VideoControls-State.ts +++ b/src/components/common/VideoPlayer/Components/VideoControls-State.ts @@ -147,8 +147,8 @@ export const useVideoControlsState = ( }; const togglePlay = async () => { + // console.log("in toggleplay playing is: ", playing.value); if (!videoRef.current) return; - if (!src || resourceStatus?.status !== "READY") { const el = document.getElementById("videoWrapper"); if (el) { @@ -159,11 +159,12 @@ export const useVideoControlsState = ( }); getSrc(); } - startPlay.value = true; + + const pause = playing.value; playing.value = !playing.value; - if (playing.value) videoRef.current.pause(); + if (pause) videoRef.current.pause(); else await videoRef.current.play(); }; @@ -178,7 +179,6 @@ export const useVideoControlsState = ( useEffect(() => { if (autoPlay && identifier) { - console.log("autoplay useEffect"); togglePlay(); } }, [autoPlay, identifier]); diff --git a/src/components/common/VideoPlayer/Components/VideoControls.tsx b/src/components/common/VideoPlayer/Components/VideoControls.tsx index 63995a6..2c85010 100644 --- a/src/components/common/VideoPlayer/Components/VideoControls.tsx +++ b/src/components/common/VideoPlayer/Components/VideoControls.tsx @@ -76,7 +76,7 @@ export const VideoControls = ({ }} onClick={() => togglePlay()} > - {!playing.value ? : } + {playing.value ? : } togglePlay()} > - {!playing.value ? : } + {playing.value ? : }