From affaf8c498de68ca4ea736c1c38d00ff9949466a Mon Sep 17 00:00:00 2001 From: lonkaars Date: Wed, 23 Jun 2021 10:06:58 +0200 Subject: no lag with hookstate --- pages/editor.tsx | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'pages/editor.tsx') diff --git a/pages/editor.tsx b/pages/editor.tsx index f0ce7dd..a6c8547 100644 --- a/pages/editor.tsx +++ b/pages/editor.tsx @@ -1,4 +1,4 @@ -import { createState, Downgraded, State, useState as useHookState } from '@hookstate/core'; +import { createState, Downgraded, State, useHookstate } from '@hookstate/core'; import mousetrap from 'mousetrap'; import { CSSProperties, ReactNode, useEffect, useRef, useState } from 'react'; import { animated, useSpring } from 'react-spring'; @@ -113,9 +113,9 @@ function calculateSelectionOffsets(left: slideTypes, right: slideTypes) { function TimelineKeyframe(props: { slide: slide; }) { - var workingTimeline = useHookState(project.timeline.workingTimeline); - var setWorkingTimeline = useHookState(project.timeline.workingTimeline).set; - var updateTimeline = useHookState(project.update.refreshLiveTimeline).value; + var workingTimeline = useHookstate(project).timeline.workingTimeline; + var setWorkingTimeline = useHookstate(project).timeline.workingTimeline.set; + var updateTimeline = useHookstate(project).update.refreshLiveTimeline.value; function modifySlide(newProps: Partial) { var slide = workingTimeline.value.find(s => s.id == props.slide.id); @@ -149,7 +149,7 @@ function TimelineKeyframe(props: { delete keyframeInAnimations[props.slide.id]; }, []); - var timelineZoom = useHookState(project.timeline.zoom); + var timelineZoom = useHookstate(project).timeline.zoom; // drag keyframe var [startOffset, setStartOffset] = useState(0); @@ -237,14 +237,14 @@ function TimelineKeyframe(props: { } function TimelineLabels() { - var labels = useHookState(project.timeline.labels); + var labels = useHookstate(project).timeline.labels; return
; } function TimelineEditor() { - var timelineZoom = useHookState(project.timeline.zoom); - var workingTimeline = useHookState(project.timeline.workingTimeline); - var tool = useHookState(project.timeline.tool); + var timelineZoom = useHookstate(project).timeline.zoom; + var workingTimeline = useHookstate(project).timeline.workingTimeline; + var tool = useHookstate(project).timeline.tool; var mouseX = 0; @@ -371,7 +371,6 @@ function TimelineEditor() { }), ); useDrag(({ xy: [x, _y] }) => { - console.log('scrubber drag'); var frame = Math.max(0, Math.round(getFrameAtOffset(x - 240, project.timeline.zoom.value)) - 1); scrubberSpring.start({ frame }); if (player.player) { @@ -811,9 +810,9 @@ function zoomAroundPoint(newZoom: number, pivot: number) { } function Tools() { - var frame = useHookState(project.timeline.frame); - var tool = useHookState(project.timeline.tool); - var timelineZoom = useHookState(project.timeline.zoom); + var frame = useHookstate(project).timeline.frame; + var tool = useHookstate(project).timeline.tool; + var timelineZoom = useHookstate(project).timeline.zoom; return
@@ -864,9 +863,7 @@ function Tools() { } export default function Index() { - // var playing = useHookState(project.timeline.playing); - // - var playing = { get: () => false }; + var playing = useHookstate(project).timeline.playing; var playerRef = useRef(null); useEffect(() => { -- cgit v1.2.3