diff --git a/src/components/Publish/PublishVideo/PublishVideo.tsx b/src/components/Publish/PublishVideo/PublishVideo.tsx index 1b2a529..3d1fc55 100644 --- a/src/components/Publish/PublishVideo/PublishVideo.tsx +++ b/src/components/Publish/PublishVideo/PublishVideo.tsx @@ -741,8 +741,8 @@ export const PublishVideo = ({ Supported File Containers:{" "} - MP4, Ogg, WebM, - WAV + MP4, M4V, OGG, + WEBM, WAV Audio Codecs: Opus diff --git a/src/components/common/Notification/Notification.tsx b/src/components/common/Notification/Notification.tsx index 501f081..3d835d5 100644 --- a/src/components/common/Notification/Notification.tsx +++ b/src/components/common/Notification/Notification.tsx @@ -1,52 +1,52 @@ -import { useDispatch, useSelector } from 'react-redux' -import { toast, ToastContainer, Zoom, Slide } from 'react-toastify' -import { removeNotification } from '../../../state/features/notificationsSlice' -import 'react-toastify/dist/ReactToastify.css' -import { RootState } from '../../../state/store' +import { useDispatch, useSelector } from "react-redux"; +import { toast, ToastContainer, Zoom, Slide } from "react-toastify"; +import { removeNotification } from "../../../state/features/notificationsSlice"; +import "react-toastify/dist/ReactToastify.css"; +import { RootState } from "../../../state/store"; const Notification = () => { - const dispatch = useDispatch() + const dispatch = useDispatch(); - const { alertTypes } = useSelector((state: RootState) => state.notifications) + const { alertTypes } = useSelector((state: RootState) => state.notifications); if (alertTypes.alertError) { toast.error(`❌ ${alertTypes?.alertError}`, { - position: 'bottom-right', + position: "bottom-right", autoClose: 4000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, - icon: false - }) - dispatch(removeNotification()) + icon: false, + }); + dispatch(removeNotification()); } if (alertTypes.alertSuccess) { toast.success(`✔️ ${alertTypes?.alertSuccess}`, { - position: 'bottom-right', + position: "bottom-right", autoClose: 4000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, - icon: false - }) - dispatch(removeNotification()) + icon: false, + }); + dispatch(removeNotification()); } if (alertTypes.alertInfo) { toast.info(`${alertTypes?.alertInfo}`, { - position: 'top-right', + position: "top-right", autoClose: 1300, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, - theme: 'light' - }) - dispatch(removeNotification()) + theme: "light", + }); + dispatch(removeNotification()); } if (alertTypes.alertInfo) { @@ -62,10 +62,10 @@ const Notification = () => { draggable pauseOnHover theme="light" - toastStyle={{ fontSize: '16px' }} + toastStyle={{ fontSize: "16px" }} transition={Slide} /> - ) + ); } return ( @@ -80,7 +80,7 @@ const Notification = () => { draggable pauseOnHover /> - ) -} + ); +}; -export default Notification +export default Notification; diff --git a/src/components/common/VideoPlayer/Components/MobileControlsBar.tsx b/src/components/common/VideoPlayer/Components/MobileControlsBar.tsx index 81a677b..f3e4350 100644 --- a/src/components/common/VideoPlayer/Components/MobileControlsBar.tsx +++ b/src/components/common/VideoPlayer/Components/MobileControlsBar.tsx @@ -14,9 +14,15 @@ import { } from "./VideoControls.tsx"; export const MobileControlsBar = () => { - const { handleMenuOpen, handleMenuClose, anchorEl } = useVideoContext(); + const { handleMenuOpen, handleMenuClose, anchorEl, controlsHeight } = + useVideoContext(); - const controlGroupSX = { display: "flex", gap: "5px", alignItems: "center" }; + const controlGroupSX = { + display: "flex", + gap: "5px", + alignItems: "center", + height: controlsHeight, + }; return ( <> @@ -36,7 +42,7 @@ export const MobileControlsBar = () => { color="inherit" aria-label="menu" onClick={handleMenuOpen} - sx={{ minWidth: "30px", paddingLeft: "0px" }} + sx={{ paddingLeft: "0px", marginRight: "0px" }} > diff --git a/src/components/common/VideoPlayer/Components/VideoControls-State.ts b/src/components/common/VideoPlayer/Components/VideoControls-State.ts index 838c079..fa1119f 100644 --- a/src/components/common/VideoPlayer/Components/VideoControls-State.ts +++ b/src/components/common/VideoPlayer/Components/VideoControls-State.ts @@ -42,6 +42,7 @@ export const useVideoControlsState = ( (state: RootState) => state.global.videoPlaying ); + const controlsHeight = "42px"; const minSpeed = 0.25; const maxSpeed = 4.0; const speedChange = 0.25; @@ -372,5 +373,6 @@ export const useVideoControlsState = ( isFullscreen, toggleObjectFit, setObjectFit, + controlsHeight, }; }; diff --git a/src/components/common/VideoPlayer/Components/VideoControls.tsx b/src/components/common/VideoPlayer/Components/VideoControls.tsx index d655279..6ec6f3d 100644 --- a/src/components/common/VideoPlayer/Components/VideoControls.tsx +++ b/src/components/common/VideoPlayer/Components/VideoControls.tsx @@ -15,13 +15,17 @@ import { } from "@mui/icons-material"; import { useSignalEffect } from "@preact/signals-react"; +const buttonPaddingBig = "6px"; +const buttonPaddingSmall = "4px"; + export const PlayButton = () => { - const { togglePlay, playing } = useVideoContext(); + const { togglePlay, playing, isScreenSmall } = useVideoContext(); return ( togglePlay()} > @@ -32,12 +36,13 @@ export const PlayButton = () => { }; export const ReloadButton = () => { - const { reloadVideo } = useVideoContext(); + const { reloadVideo, isScreenSmall } = useVideoContext(); return ( @@ -164,6 +169,7 @@ export const VolumeControl = ({ sliderWidth }: { sliderWidth: string }) => { ); }; + export const PlaybackRate = () => { const { playbackRate, increaseSpeed, isScreenSmall } = useVideoContext(); return ( @@ -175,22 +181,37 @@ export const PlaybackRate = () => { increaseSpeed()} > - - {playbackRate}x - + {playbackRate}x + + + ); +}; + +export const ObjectFitButton = () => { + const { toggleObjectFit, isScreenSmall } = useVideoContext(); + return ( + + toggleObjectFit()} + > + ); }; export const PictureInPictureButton = () => { - const { isFullscreen, toggleRef, togglePictureInPicture } = useVideoContext(); + const { isFullscreen, toggleRef, togglePictureInPicture, isScreenSmall } = + useVideoContext(); return ( <> {!isFullscreen.value && ( @@ -202,6 +223,7 @@ export const PictureInPictureButton = () => { { ); }; -export const ObjectFitButton = () => { - const { toggleObjectFit } = useVideoContext(); - return ( - - toggleObjectFit()} - > - - - - ); -}; - export const FullscreenButton = () => { - const { toggleFullscreen } = useVideoContext(); + const { toggleFullscreen, isScreenSmall } = useVideoContext(); return ( toggleFullscreen()} > diff --git a/src/components/common/VideoPlayer/Components/VideoControlsBar.tsx b/src/components/common/VideoPlayer/Components/VideoControlsBar.tsx index 2aa5663..ad938f8 100644 --- a/src/components/common/VideoPlayer/Components/VideoControlsBar.tsx +++ b/src/components/common/VideoPlayer/Components/VideoControlsBar.tsx @@ -15,11 +15,10 @@ import { } from "./VideoControls.tsx"; export const VideoControlsBar = () => { - const { from, canPlay, showControlsFullScreen, isScreenSmall, progress } = - useVideoContext(); + const { canPlay, isScreenSmall, controlsHeight } = useVideoContext(); const showMobileControls = isScreenSmall && canPlay.value; - const controlsHeight = "42px"; + const controlGroupSX = { display: "flex", gap: "5px",