[BUG] Grab bag of sketch mode bug fixes (#6229)
* use artifact id for sketch mode entry plane * fix up re-eval as best as possible * remove some async dodgyness * fmt * fix old sycronous re-execute shit * add a test * fix existing test * add toast for error state * spelling * test stuff * fmt * fix toast * test fix * some other fix ups * fix test
This commit is contained in:
@ -551,6 +551,9 @@ export const ModelingMachineProvider = ({
|
||||
if (selectionRanges.graphSelections.length <= 0) return false
|
||||
return true
|
||||
},
|
||||
'is-error-free': () => {
|
||||
return kclManager.errors.length === 0 && !kclManager.hasErrors()
|
||||
},
|
||||
'Selection is on face': ({ context: { selectionRanges }, event }) => {
|
||||
if (event.type !== 'Enter sketch') return false
|
||||
if (event.data?.forceNewSketch) return false
|
||||
@ -854,6 +857,7 @@ export const ModelingMachineProvider = ({
|
||||
: plane?.pathIds[0]
|
||||
let sketch: KclValue | null = null
|
||||
let planeVar: Plane | null = null
|
||||
|
||||
for (const variable of Object.values(
|
||||
kclManager.execState.variables
|
||||
)) {
|
||||
@ -884,6 +888,7 @@ export const ModelingMachineProvider = ({
|
||||
planeVar = variable.value
|
||||
}
|
||||
}
|
||||
|
||||
if (!sketch || sketch.type !== 'Sketch') {
|
||||
if (artifact?.type !== 'plane')
|
||||
return Promise.reject(new Error('No sketch'))
|
||||
@ -1911,18 +1916,6 @@ export const ModelingMachineProvider = ({
|
||||
}
|
||||
}, [modelingActor])
|
||||
|
||||
useEffect(() => {
|
||||
kclManager.registerExecuteCallback(() => {
|
||||
modelingSend({ type: 'Re-execute' })
|
||||
})
|
||||
|
||||
// Before this component unmounts, call the 'Cancel'
|
||||
// event to clean up any state in the modeling machine.
|
||||
return () => {
|
||||
modelingSend({ type: 'Cancel' })
|
||||
}
|
||||
}, [modelingSend])
|
||||
|
||||
// Give the state back to the editorManager.
|
||||
useEffect(() => {
|
||||
editorManager.modelingSend = modelingSend
|
||||
|
Reference in New Issue
Block a user