feat: refactor to dedicated IParametersBinding

This commit is contained in:
Björn Steinhagen
2026-03-04 20:13:32 +02:00
parent d870fdcb30
commit 4fdf61bf1e
3 changed files with 15 additions and 5 deletions
+5 -4
View File
@@ -9,7 +9,8 @@
class="border rounded-xl border-outline-3 w-full"
:doc="issue.description?.doc"
></IssuesBasicTiptap>
<div v-if="hasObjectDeltas" class="w-full pt-1 pb-1">
<div v-if="app.$parametersBinding && hasObjectDeltas" class="w-full pt-1 pb-1">
<FormButton
class="w-full justify-center"
:disabled="isApplying"
@@ -156,10 +157,10 @@ const applyChanges = async () => {
? objectDeltasPayload.value
: JSON.stringify(objectDeltasPayload.value)
if (typeof app.$baseBinding.updateParameters === 'function') {
await app.$baseBinding.updateParameters(payload)
if (app.$parametersBinding) {
await app.$parametersBinding.update(payload)
} else {
console.warn('Backend C# updateParameters binding is not yet implemented.')
console.warn('IParametersBinding is not available in this host app')
}
} catch (error) {
console.error('Failed to apply changes:', error)
@@ -0,0 +1,3 @@
export interface IParametersBinding {
update: (payload: string) => Promise<void>
}
+7 -1
View File
@@ -8,6 +8,7 @@ import {
IAccountBindingKey,
MockedAccountBinding
} from '~/lib/bindings/definitions/IAccountBinding'
import type { IParametersBinding } from '~/lib/bindings/definitions/IParametersBinding'
import type { ITestBinding } from '~/lib/bindings/definitions/ITestBinding'
import {
@@ -132,6 +133,10 @@ export default defineNuxtPlugin(async () => {
ITopLevelExpectionHandlerBindingKey
)
const parametersBinding = await tryHoistBinding<IParametersBinding>(
'parametersBinding'
)
// Any binding implments these two methods below, we just choose one to
// expose globally to the app.
const showDevTools = () => {
@@ -157,7 +162,8 @@ export default defineNuxtPlugin(async () => {
topLevelExceptionHandlerBinding,
showDevTools,
openUrl,
revitMapperBinding
revitMapperBinding,
parametersBinding
}
}
})