move export to the rust side to make the interface way more clean (#5855)

* move export

Signed-off-by: Jess Frazelle <github@jessfraz.com>

testing

Signed-off-by: Jess Frazelle <github@jessfraz.com>

remove debugs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fix main

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

fices

Signed-off-by: Jess Frazelle <github@jessfraz.com>

get rid of logs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* Convert async actions anti-pattern to fromPromise actors

* Fix tsc by removing a generic type

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* Update rustContext.ts

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix;

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* remove weird file

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: Frank Noirot <frankjohnson1993@gmail.com>
This commit is contained in:
Jess Frazelle
2025-03-18 20:25:51 -07:00
committed by GitHub
parent 3b1d1307c4
commit 859bfc7b28
20 changed files with 550 additions and 421 deletions

View File

@ -1283,14 +1283,12 @@ export const modelingMachine = setup({
},
}
}),
Make: () => {},
'enable copilot': () => {},
'disable copilot': () => {},
'Set selection': () => {},
'Set mouse state': () => {},
'Set Segment Overlays': () => {},
'Center camera on selection': () => {},
'Engine export': () => {},
'Submit to Text-to-CAD API': () => {},
'Set sketchDetails': () => {},
'sketch exit execute': () => {},
@ -2469,6 +2467,20 @@ export const modelingMachine = setup({
}
}
),
exportFromEngine: fromPromise(
async ({}: { input?: ModelingCommandSchema['Export'] }) => {
return undefined as Error | undefined
}
),
makeFromEngine: fromPromise(
async ({}: {
input?: {
machineManager: MachineManager
} & ModelingCommandSchema['Make']
}) => {
return undefined as Error | undefined
}
),
},
// end actors
}).createMachine({
@ -2528,17 +2540,13 @@ export const modelingMachine = setup({
},
Export: {
target: 'idle',
reenter: false,
target: 'Exporting',
guard: 'Has exportable geometry',
actions: 'Engine export',
},
Make: {
target: 'idle',
reenter: false,
target: 'Making',
guard: 'Has exportable geometry',
actions: 'Make',
},
'Delete selection': {
@ -3885,6 +3893,35 @@ export const modelingMachine = setup({
onError: ['idle'],
},
},
Exporting: {
invoke: {
src: 'exportFromEngine',
id: 'exportFromEngine',
input: ({ event }) => {
if (event.type !== 'Export') return undefined
return event.data
},
onDone: ['idle'],
onError: ['idle'],
},
},
Making: {
invoke: {
src: 'makeFromEngine',
id: 'makeFromEngine',
input: ({ event, context }) => {
if (event.type !== 'Make' || !context.machineManager) return undefined
return {
machineManager: context.machineManager,
...event.data,
}
},
onDone: ['idle'],
onError: ['idle'],
},
},
},
initial: 'idle',