Files
speckle-connectors-dui/lib/bindings/definitions/ISendBinding.ts
T
Oğuzhan Koral 85f806368a feat: handle model card state according to given ingestion id (#89)
* feat: handle model card state according to given ingestion id

* chore: linting
2026-02-25 14:00:59 +03:00

72 lines
1.9 KiB
TypeScript

import type { ISendFilter } from '~~/lib/models/card/send'
import type {
IBinding,
IBindingSharedEvents
} from '~~/lib/bindings/definitions/IBinding'
import type { CardSetting } from '~/lib/models/card/setting'
import type { IModelCardSharedEvents } from '~/lib/models/card'
import type { ConversionResult } from '~/lib/conversions/conversionResult'
import type { CreateVersionArgs } from '~/lib/bridge/server'
export const ISendBindingKey = 'sendBinding'
export interface ISendBinding extends IBinding<ISendBindingEvents> {
getSendFilters: () => Promise<ISendFilter[]>
getSendSettings: () => Promise<CardSetting[]>
send: (modelId: string) => Promise<void>
cancelSend: (modelId: string) => Promise<void>
}
export interface ISendBindingEvents
extends IBindingSharedEvents,
IModelCardSharedEvents {
refreshSendFilters: () => void
setModelsExpired: (modelCardIds: string[]) => void
setModelSendResult: (args: {
modelCardId: string
versionId: string
sendConversionResults: ConversionResult[]
ingestionId?: string
}) => void
setIdMap: (args: {
modelCardId: string
idMap: Record<string, string>
newSelectedObjectIds: string[]
}) => void
/**
* Use whenever want to cancel model card progress, it is used on Archicad so far since send operation blocks the UI thread.
*/
triggerCancel: (modelCardId: string) => void
triggerCreateVersion: (args: CreateVersionArgs) => void
}
export class MockedSendBinding implements ISendBinding {
public async getSendFilters() {
return await []
}
public async getSendSettings() {
return await []
}
public async send(_modelCardId: string) {
return await console.log('no way dude')
}
public async cancelSend(_modelCardId: string) {
return await console.log('no way dude')
}
public async showDevTools() {
await console.log('No way dude')
}
public async openUrl(url: string) {
await window.open(url)
}
public on() {
return
}
}