initial migration from zustand (#2852)

* inital migration with a couple lingering concerns

* move is stream ready back

* put htmlRef back in useStore

* final tidy of useStore

* test tweaks

* tweak more

* more test tweaks

* fmt

* test tweaks

* attempts at fixing 'Basic default modeling and sketch hotkeys work'

* more tries

* 😭

* try again

* fmt
This commit is contained in:
Kurt Hutten
2024-07-02 17:16:27 +10:00
committed by GitHub
parent de354ee5d3
commit f86a69f12a
46 changed files with 502 additions and 452 deletions

View File

@ -1,6 +1,5 @@
import { MouseEventHandler, useEffect, useRef } from 'react'
import { uuidv4 } from 'lib/utils'
import { useStore } from './useStore'
import { useHotKeyListener } from './hooks/useHotKeyListener'
import { Stream } from './components/Stream'
import { EngineCommand } from './lang/std/engineConnection'
@ -26,6 +25,7 @@ import ModalContainer from 'react-modal-promise'
import useHotkeyWrapper from 'lib/hotkeyWrapper'
import Gizmo from 'components/Gizmo'
import { CoreDumpManager } from 'lib/coredump'
import { useStore } from 'useStore'
export function App() {
useRefreshSettings(paths.FILE + 'SETTINGS')
@ -44,13 +44,10 @@ export function App() {
}, [projectName, projectPath])
useHotKeyListener()
const { buttonDownInStream, didDragInStream, streamDimensions, setHtmlRef } =
useStore((s) => ({
buttonDownInStream: s.buttonDownInStream,
didDragInStream: s.didDragInStream,
streamDimensions: s.streamDimensions,
setHtmlRef: s.setHtmlRef,
}))
const { context } = useModelingContext()
const { setHtmlRef } = useStore((s) => ({
setHtmlRef: s.setHtmlRef,
}))
useEffect(() => {
setHtmlRef(ref)
@ -81,7 +78,7 @@ export function App() {
(p) => p === onboardingStatus.current
)
? 'opacity-20'
: didDragInStream
: context.store?.didDragInStream
? 'opacity-40'
: ''
@ -99,11 +96,11 @@ export function App() {
clientX: e.clientX,
clientY: e.clientY,
el: e.currentTarget,
...streamDimensions,
...context.store?.streamDimensions,
})
const newCmdId = uuidv4()
if (buttonDownInStream === undefined) {
if (context.store?.buttonDownInStream === undefined) {
debounceSocketSend({
type: 'modeling_cmd_req',
cmd: {
@ -125,7 +122,7 @@ export function App() {
className={
'transition-opacity transition-duration-75 ' +
paneOpacity +
(buttonDownInStream ? ' pointer-events-none' : '')
(context.store?.buttonDownInStream ? ' pointer-events-none' : '')
}
project={{ project, file }}
enableMenu={true}