fix(validation): proper rules
This commit is contained in:
		
							parent
							
								
									b44539c182
								
							
						
					
					
						commit
						11d8110226
					
				| @ -1,27 +1,30 @@ | ||||
| import { reactive, watch, type Ref } from 'vue'; | ||||
| 
 | ||||
| type UseValidationRule<T> = { | ||||
|   validator: (value: T) => boolean | ||||
|   message: string | ||||
| } | ||||
|   validator: (value: T) => boolean; | ||||
|   message: string; | ||||
| }; | ||||
| 
 | ||||
| export function useValidation<T>({ source, rules }: { source: Ref<T>; rules: UseValidationRule<T>[] }) { | ||||
|   const state = reactive<{ | ||||
|     message: string, | ||||
|     status: undefined | 'error' | ||||
|     message: string; | ||||
|     status: undefined | 'error'; | ||||
|   }>({ | ||||
|     message: '', | ||||
|     status: undefined | ||||
|   }) | ||||
|     status: undefined, | ||||
|   }); | ||||
| 
 | ||||
|   watch([source], () => { | ||||
|     for(const rule of rules) { | ||||
|       if(!rule.validator(source.value)){ | ||||
|         state.message = rule.message | ||||
|         state.status = 'error' | ||||
|     state.message = ''; | ||||
|     state.status = undefined; | ||||
| 
 | ||||
|     for (const rule of rules) { | ||||
|       if (!rule.validator(source.value)) { | ||||
|         state.message = rule.message; | ||||
|         state.status = 'error'; | ||||
|       } | ||||
|     } | ||||
|   }) | ||||
|   }); | ||||
| 
 | ||||
|   return state; | ||||
| } | ||||
|  | ||||
| @ -110,7 +110,7 @@ const entropyValidation = useValidation({ | ||||
|             message: 'Entropy length should be >= 16, <= 32 and be a multiple of 4' | ||||
|         }, | ||||
|         { | ||||
|             validator: (value) => /^[a-fA-f0-9]?$/.test(value), | ||||
|             validator: (value) => /^[a-fA-F0-9]*$/.test(value), | ||||
|             message: 'Entropy should an hexadecimal number' | ||||
|         } | ||||
|     ] | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user