reword touched logic and export it as a store

This commit is contained in:
Keviin Åberg Kultalahti 2021-05-11 18:08:55 +02:00
parent 2b3c4ee2bc
commit c450e5cd8a
1 changed files with 7 additions and 6 deletions

View File

@ -4,15 +4,16 @@ export function createValidationStore(initialValue, ...validators) {
let touched = false let touched = false
const value = writable(initialValue || '') const value = writable(initialValue || '')
const error = derived(value, $v => { const error = derived(value, $v => validate($v, validators))
if (touched) { const touchedStore = derived(value, () => {
return validate($v, validators) if (!touched) {
} else {
touched = true touched = true
return
} }
return touched
}) })
return [value, error] return [value, error, touchedStore]
} }
function validate(value, validators) { function validate(value, validators) {