Spaces:
Build error
Build error
export type CreateFieldValidationArgs = { | |
validate: (v: string) => string | void | undefined; | |
}; | |
export function createFieldValidation(args: CreateFieldValidationArgs) { | |
let valid = $state(true); | |
let msg = $state<string>(); | |
const onblur = (e: Event & { currentTarget: HTMLInputElement }) => { | |
const v = e.currentTarget?.value; | |
const m = args.validate(v); | |
valid = !m; | |
msg = m ?? undefined; | |
}; | |
const oninput = (e: Event & { currentTarget: HTMLInputElement }) => { | |
if (valid) return; | |
const v = e.currentTarget.value; | |
const m = args.validate(v); | |
msg = m ? m : undefined; | |
}; | |
return { | |
get valid() { | |
return valid; | |
}, | |
get msg() { | |
return msg; | |
}, | |
attrs: { | |
onblur, | |
oninput, | |
}, | |
}; | |
} | |