useError.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. import { AnyStore } from '~/types/interfaces'
  2. import {computed, ComputedRef} from "@nuxtjs/composition-api";
  3. /**
  4. * @category composables/form
  5. * Composable pour gérer l'apparition de message si le formulaire est dirty
  6. * @param field
  7. * @param emit
  8. * @param store
  9. */
  10. export function useError(field: string, emit: any, store: AnyStore){
  11. const error:ComputedRef<Boolean> = computed(()=>{
  12. return store.state.form.violations.indexOf(field) >= 0
  13. })
  14. /**
  15. * Lorsque la valeur d'un champ change, on supprime le fait qu'il puisse être "faux" dans le store, et on émet sa nouvelle valeur au parent
  16. * @param emit
  17. * @param fieldValue
  18. * @param changeField
  19. */
  20. function onChange (emit:any, fieldValue:any, changeField:string) {
  21. const errors = store.state.form.violations.filter((field:string) => field !== changeField)
  22. store.commit('form/setViolations', errors)
  23. emit('update', fieldValue, changeField)
  24. }
  25. return {
  26. onChange: (fieldValue:any) => onChange(emit, fieldValue, field),
  27. error
  28. }
  29. }