diff --git a/packages/fakeyou.com/src/components/common/VideoQuickTrim/components/ProgressBar.tsx b/packages/fakeyou.com/src/components/common/VideoQuickTrim/components/ProgressBar.tsx index 37ffffd3be..1e32249c07 100644 --- a/packages/fakeyou.com/src/components/common/VideoQuickTrim/components/ProgressBar.tsx +++ b/packages/fakeyou.com/src/components/common/VideoQuickTrim/components/ProgressBar.tsx @@ -8,7 +8,7 @@ import { Action, ACTION_TYPES, } from '../reducer'; -import { QuickTrimData } from '../types'; +import { QuickTrimData } from '../utilities'; import { TrimScrubber } from './TrimScrubber'; export const ProgressBar = memo(({ @@ -46,9 +46,9 @@ export const ProgressBar = memo(({ }else{ // console.log(node); } - }, []); + }, [dispatchCompState]); - function handleWindowResize() { + const handleWindowResize = useCallback(()=> { if (playbarRef.current !== null && readyToMount){ dispatchCompState({ type: ACTION_TYPES.SET_PLAYBAR_LAYOUT, @@ -57,13 +57,13 @@ export const ProgressBar = memo(({ } }); } - } + },[dispatchCompState, readyToMount]); useLayoutEffect(() => { window.addEventListener("resize", handleWindowResize); return () => { window.removeEventListener("resize", handleWindowResize); }; - }, []); + }, [handleWindowResize]); if(readyToMount){ // console.log('progress bar rendering'); @@ -72,18 +72,20 @@ export const ProgressBar = memo(({
(Component: React.Co
onScrubChanges,
...rest
}: withScrubbingPropsI) => {
- console.log(`withScrubbing reRender!! ${Date.now()}`);
+ // console.log(`withScrubbing reRender!! ${Date.now()}`);
const refEl = useRef (Component: React.Co
pointerStartPos: -1 // negative denotes pointer not engaged
});
- const handleScrubStart = useCallback( (e: MouseEvent) => {
- if(refEl.current){
- console.log(`start: ${e.clientX}` );
- if(refEl.current.contains(e.target as Node)){
- setStates((curr)=>({
- ...curr,
- pointerStartPos: e.clientX
- }));
- return true;
- }
- }
- },[]);
- const handleScrubEnd = useCallback((e: MouseEvent)=>{
- // e.persist();
- e.preventDefault();
- e.stopPropagation();
- setStates((curr)=>({
- ...curr,
- pointerStartPos: -1,
- prevLeftOffset: curr.currLeftOffset,
- }));
- // if (onScrubEnds) onScrubEnds(currLeftOffset/boundingWidth);
- }, []);
- const handleScrubMove = useCallback ((e: MouseEvent)=>{
- // e.persist();
- e.preventDefault();
- e.stopPropagation();
- setStates((curr)=>{
- if(curr.pointerStartPos >= 0 && curr.pointerStartPos!==null){
- let newLeftOffset = curr.prevLeftOffset + e.clientX - curr.pointerStartPos;
- if (newLeftOffset + scrubberWidth > boundingWidth) {
- newLeftOffset = boundingWidth - scrubberWidth;
- }else if(newLeftOffset < 0) {
- newLeftOffset = 0;
- }
- if(newLeftOffset !== curr.currLeftOffset){
- return{
+ useLayoutEffect(() => {
+ function handleScrubStart (e: MouseEvent) {
+ if(refEl.current){
+ if(refEl.current.contains(e.target as Node)){
+ setStates((curr)=>({
...curr,
- currLeftOffset: newLeftOffset
+ pointerStartPos: e.clientX
+ }));
+ return true;
+ }
+ }
+ };
+ function handleScrubEnd (e: MouseEvent){
+ e.preventDefault();
+ e.stopPropagation();
+ setStates((curr)=>({
+ ...curr,
+ pointerStartPos: -1,
+ prevLeftOffset: curr.currLeftOffset,
+ }));
+ };
+ function handleScrubMove (e: MouseEvent){
+ e.preventDefault();
+ e.stopPropagation();
+ setStates((curr)=>{
+ if(curr.pointerStartPos >= 0 && curr.pointerStartPos!==null){
+ let newLeftOffset = curr.prevLeftOffset + e.clientX - curr.pointerStartPos;
+ if (newLeftOffset + scrubberWidth > boundingWidth) {
+ newLeftOffset = boundingWidth - scrubberWidth;
+ }else if(newLeftOffset < 0) {
+ newLeftOffset = 0;
+ }
+ if(newLeftOffset !== curr.currLeftOffset){
+ return{
+ ...curr,
+ currLeftOffset: newLeftOffset
+ }
}
}
- }
- return curr;
- });
- // if (onScrubChanges) onScrubChanges(newLeftOffset/boundingWidth);
- },[scrubberWidth, boundingWidth]);
-
- useLayoutEffect(() => {
- if(!(window as any)[`listener-id-${key}`]){
- (window as any)[`listender-id-${key}`] = true;
+ return curr;
+ });
+ };
+ if(!(window as any)[`listener-id-${refListener}`]){
+ (window as any)[`listender-id-${refListener}`] = true;
window.addEventListener("mousedown", handleScrubStart);
window.addEventListener("mouseup", handleScrubEnd);
window.addEventListener("mousemove", handleScrubMove);
return () => {
- (window as any)[`${key}listeners`] = false;
+ (window as any)[`listener-id-${refListener}`] = false;
window.removeEventListener("mousedown", handleScrubStart);
window.removeEventListener("mouseup", handleScrubEnd);
window.removeEventListener("mousemove", handleScrubMove);
};
}
- }, [handleScrubStart, handleScrubEnd, handleScrubMove, key]);
+ }, []);
+ // useEffect(()=>{
+ // if(onScrubEnds)onScrubEnds(prevLeftOffset/boundingWidth);
+ // },[prevLeftOffset, boundingWidth, onScrubEnds]);
return(
-
+ {/*