Files
speckle-server/packages/frontend-2/lib/automate/composables/jsonSchema.ts
T
Kristaps Fabians Geikins 1d2a594f0a chore: upgrade TS 5.2 -> 5.7.3 & ESLint to 9.20.1 (#4032)
* chore: upgrade TS 5.2 -> 5.7.3

* vite dts fix

* lint fix

* resolutions fix

* ui comp build fix

* precommit fix?

* latest eslint version

* autoloader fix

* undo unnecessary viewer change

* eslint fixes fe2 + trying disabled type linting

* lint fixes
2025-02-20 14:18:18 +02:00

37 lines
932 B
TypeScript

import type { JsonSchema } from '@jsonforms/core'
import type { JsonFormsChangeEvent } from '@jsonforms/vue'
import type { MaybeNullOrUndefined } from '@speckle/shared'
import { formatJsonFormSchemaInputs } from '~/lib/automate/helpers/jsonSchema'
export const hasJsonFormErrors = (event?: JsonFormsChangeEvent) =>
(event?.errors?.length || 0) > 0
export const useJsonFormsChangeHandler = (params: {
schema: MaybeRef<MaybeNullOrUndefined<JsonSchema>>
}) => {
const { schema } = params
const event = ref<JsonFormsChangeEvent>()
const value = computed(() =>
formatJsonFormSchemaInputs(event.value?.data, unref(schema))
)
const hasErrors = computed(() =>
event.value ? hasJsonFormErrors(event.value) : false
)
const handler = (e: JsonFormsChangeEvent) => {
event.value = e
}
const reset = () => {
event.value = undefined
}
return {
value,
hasErrors,
handler,
reset
}
}