Type anys

This commit is contained in:
Adria Navarro 2025-03-10 16:35:14 +01:00
parent e9206b34eb
commit f697b94214
3 changed files with 18 additions and 9 deletions

View File

@ -1,7 +1,3 @@
<script context="module" lang="ts">
export type FieldValidation = () => string | undefined
</script>
<script lang="ts">
import { getContext, onDestroy } from "svelte"
import type { Readable } from "svelte/store"
@ -12,7 +8,17 @@
import InnerForm from "./InnerForm.svelte"
import type { FieldApi, FieldState } from "."
import type { FieldSchema, FieldType } from "@budibase/types"
import type { FormField } from "@/index"
import type { FieldValidation, FormField } from "@/index"
interface FieldInfo {
field: string
type: FieldType
defaultValue: string | undefined
disabled: boolean
readonly: boolean
validation?: FieldValidation
formStep: number
}
export let label: string | undefined = undefined
export let field: string | undefined = undefined
@ -44,7 +50,7 @@
// Memoize values required to register the field to avoid loops
const formStep = formStepContext || writable(1)
const fieldInfo = memo({
const fieldInfo = memo<FieldInfo>({
field: field || $component.name,
type,
defaultValue,
@ -88,7 +94,7 @@
// Determine label class from position
$: labelClass = labelPos === "above" ? "" : `spectrum-FieldLabel--${labelPos}`
const registerField = (info: any) => {
const registerField = (info: FieldInfo) => {
formField = formApi?.registerField(
info.field,
info.type,

View File

@ -3,13 +3,14 @@
import { BasicOperator, FieldType, InternalTable } from "@budibase/types"
import { fetchData, Utils } from "@budibase/frontend-core"
import { getContext } from "svelte"
import Field, { FieldValidation } from "./Field.svelte"
import Field from "./Field.svelte"
import type {
SearchFilter,
RelationshipFieldMetadata,
Row,
} from "@budibase/types"
import type { FieldApi, FieldState } from "."
import { FieldValidation } from "@/index"
export let field: string | undefined = undefined
export let label: string | undefined = undefined

View File

@ -115,12 +115,14 @@ export interface FormContext {
defaultValue: string | undefined,
disabled: boolean,
readonly: boolean,
validation: () => string | undefined,
validation: FieldValidation | undefined,
formStep: number
) => Readable<FormField>
}
}
export type FieldValidation = () => string | undefined
export interface FormField {
fieldState: FieldState
fieldApi: FieldApi