diff options
author | 2022-07-29 15:49:28 +0200 | |
---|---|---|
committer | 2022-08-03 17:13:33 +0200 | |
commit | 77b5b0cab50a05dcb419ce87d74517d82e7cd2c0 (patch) | |
tree | 6d676557a514940a1ad45ebf7cda2491dfb3b29e /src/composable | |
parent | 7570ad965602233f860b9e03177a5b9dacf1b034 (diff) | |
download | it-tools-77b5b0cab50a05dcb419ce87d74517d82e7cd2c0.tar.gz it-tools-77b5b0cab50a05dcb419ce87d74517d82e7cd2c0.tar.zst it-tools-77b5b0cab50a05dcb419ce87d74517d82e7cd2c0.zip |
refactor(validation): simplified validation system
Diffstat (limited to 'src/composable')
-rw-r--r-- | src/composable/validation.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/composable/validation.ts b/src/composable/validation.ts index b27f2db..fc008de 100644 --- a/src/composable/validation.ts +++ b/src/composable/validation.ts @@ -20,15 +20,25 @@ export function isFalsyOrHasThrown(cb: () => ValidatorReturnType): boolean { } } +type ValidationAttrs = { + feedback: string; + validationStatus: string | undefined; +}; + export function useValidation<T>({ source, rules }: { source: Ref<T>; rules: UseValidationRule<T>[] }) { const state = reactive<{ message: string; status: undefined | 'error'; isValid: boolean; + attrs: ValidationAttrs; }>({ message: '', status: undefined, isValid: false, + attrs: { + validationStatus: undefined, + feedback: '', + }, }); watch( @@ -45,6 +55,8 @@ export function useValidation<T>({ source, rules }: { source: Ref<T>; rules: Use } state.isValid = state.status !== 'error'; + state.attrs.feedback = state.message; + state.attrs.validationStatus = state.status; }, { immediate: true }, ); |