From b1ab64f64d82fc8992ed3eef20522edb7c2479ae Mon Sep 17 00:00:00 2001 From: wil Date: Tue, 27 Feb 2024 14:19:06 -0500 Subject: [PATCH] style update to match mombay's design --- .../common/VideoQuickTrim/VideoQuickTrim.tsx | 139 ++++++++++-------- .../common/VideoQuickTrim/styles.scss | 24 ++- 2 files changed, 94 insertions(+), 69 deletions(-) diff --git a/packages/fakeyou.com/src/components/common/VideoQuickTrim/VideoQuickTrim.tsx b/packages/fakeyou.com/src/components/common/VideoQuickTrim/VideoQuickTrim.tsx index 90223817cd..8e2fcf3cb0 100644 --- a/packages/fakeyou.com/src/components/common/VideoQuickTrim/VideoQuickTrim.tsx +++ b/packages/fakeyou.com/src/components/common/VideoQuickTrim/VideoQuickTrim.tsx @@ -1,6 +1,5 @@ import React, { useCallback, - useEffect, useState, useRef, PointerEvent @@ -10,15 +9,27 @@ import { faPause } from "@fortawesome/pro-solid-svg-icons" import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { Button, VideoFakeyou } from "components/common"; +import { + Button, + SelectionBubbles, + VideoFakeyou +} from "components/common"; import { VideoFakeyouProps } from "../VideoFakeyou/VideoFakeyou"; import './styles.scss' +function roundTo2Dec(floaty:number){ + return Math.round(floaty*100)/100; +} function fractionToPercentage(fraction:number){ - return Math.round(fraction * 10000) / 100; + return roundTo2Dec(fraction * 100); +} +function formatSecondsToHHMMSS(seconds:number){ + if(seconds < 3600) + return new Date(seconds * 1000).toISOString().substring(14, 19) + else + return new Date(seconds * 1000).toISOString().slice(11, 19); } - interface VideoQuickTrimProps extends VideoFakeyouProps{ onChange: ()=>void; } @@ -62,6 +73,13 @@ export default function VideoQuickTrim({ } }, []); //END videoRefCallback + const trimOptions: { [key: string]: number } = { + "3s": 3, + "5s": 5, + "10s": 10, + "15s" : 15, + "20s" : 20, + }; const trimZoneRef = useRef(null); const playbarRef = useRef(null); const [playpause, setPlaypause] = useState<'playing'|'paused'|'stopped'>('paused'); @@ -70,11 +88,11 @@ export default function VideoQuickTrim({ isScrubbingTrim, }, setState] = useState(initialState); - const handleChangeTrimDuration = (newTrim: number) =>{ + const handleChangeTrimDuration = (selected: string) =>{ setState((curr)=>({ ...curr, - trimDuration: newTrim, - trimEnd: curr.trimStart+ newTrim, + trimDuration: trimOptions[selected], + trimEnd: curr.trimStart+ trimOptions[selected], })) } const handlePlaypause = ()=>{ @@ -107,64 +125,59 @@ export default function VideoQuickTrim({ } - -
-
{ - if(trimZoneRef.current){ - trimZoneRef.current.style.cursor = 'grabbing'; - setState((curr)=>({ - ...curr, - isScrubbingTrim: true, - })) - } - }} - onPointerUp={()=>{ - if(trimZoneRef.current) { - trimZoneRef.current.style.cursor = 'grab'; - setState((curr)=>({ - ...curr, - isScrubbingTrim: true, - })); - } - }} - onPointerMove={(e: PointerEvent)=>{ - if(trimZoneRef.current && playbarRef.current && isScrubbingTrim){ - console.log(fractionToPercentage( - (e.clientX - trimZoneRef.current.getBoundingClientRect().left) / playbarRef.current.getBoundingClientRect().width - ) + "%"); - } - }} - /> -
-
{/* END of Playbar */}
{/* END of Video Wrapper */} -
-
+
diff --git a/packages/fakeyou.com/src/components/common/VideoQuickTrim/styles.scss b/packages/fakeyou.com/src/components/common/VideoQuickTrim/styles.scss index 4d30acf398..b7d3a6ff51 100644 --- a/packages/fakeyou.com/src/components/common/VideoQuickTrim/styles.scss +++ b/packages/fakeyou.com/src/components/common/VideoQuickTrim/styles.scss @@ -1,11 +1,15 @@ @import "scss/colours.scss"; +$playbar-height: 2rem; + .fy-video-quicktrim { .video-wrapper{ position: relative; background-color: $bg; border-radius: 0.5rem 0.5rem 0 0; - border: $panel-inner-border 1px solid; + border-top: $panel-inner-border 1px solid; + border-left: $panel-inner-border 1px solid; + border-right: $panel-inner-border 1px solid; } .playpause-overlay{ position: absolute; @@ -28,9 +32,17 @@ } .playbar{ position:relative; - height: 2rem; + height: $playbar-height; width: 100%; - background-color: rgba(255,255,255,0.6); + } + .playbar-bg{ + position: absolute; + height: 100%; + width: 100%; + top:0; + left: 0; + background-color: $panel-inner-border; + border-radius: 0 0 0.5rem 0.5rem; } .trimzone{ position: absolute; @@ -44,8 +56,8 @@ .playcursor{ position: absolute; top:0; - width: 1px; - height: 2rem; - background-color: red; + width: 0.5rem; + height: $playbar-height; + background-color: white; } } \ No newline at end of file