diff --git a/src/components/ModelStateIndicator.tsx b/src/components/ModelStateIndicator.tsx index 378e90eec..641d1edad 100644 --- a/src/components/ModelStateIndicator.tsx +++ b/src/components/ModelStateIndicator.tsx @@ -29,6 +29,12 @@ export const ModelStateIndicator = () => { name="checkmark" /> ) + } else if (lastCommandType === 'export-done') { + className += + 'border-6 border border-solid border-chalkboard-60 dark:border-chalkboard-80 bg-chalkboard-20 dark:bg-chalkboard-80 !group-disabled:bg-chalkboard-30 !dark:group-disabled:bg-chalkboard-80 rounded-sm bg-succeed-10/30 dark:bg-succeed' + icon = ( + + ) } return ( diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index 169b198d4..078962a24 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -1252,6 +1252,10 @@ export type CommandLog = type: 'execution-done' data: null } + | { + type: 'export-done' + data: null + } export enum EngineCommandManagerEvents { // engineConnection is available but scene setup may not have run @@ -1918,7 +1922,13 @@ export class EngineCommandManager extends EventTarget { } else if (cmd.type === 'export') { const promise = new Promise((resolve, reject) => { this.pendingExport = { - resolve, + resolve: (passThrough) => { + this.addCommandLog({ + type: 'export-done', + data: null, + }) + resolve(passThrough) + }, reject: (reason: string) => { this.exportIntent = null reject(reason)