useFieldViolation.ts 977 B

1234567891011121314151617181920212223242526272829303132
  1. import {computed, ComputedRef} from "@vue/reactivity";
  2. import {useFormStore} from "~/stores/form";
  3. import {useNuxtApp} from "#app";
  4. import {useGet} from "#imports";
  5. /**
  6. * Composable pour gérer l'apparition de message d'erreurs de validation d'un champ de formulaire
  7. *
  8. * @param field
  9. */
  10. export function useFieldViolation(field: string) {
  11. const { emit } = useNuxtApp()
  12. const fieldViolations: ComputedRef<string> = computed(()=> {
  13. return useGet(useFormStore().violations, field, '')
  14. })
  15. /**
  16. * 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
  17. * @param field
  18. * @param value
  19. */
  20. function updateViolationState(field: string, value: any) {
  21. //@ts-ignore
  22. useFormStore().setViolations(useOmit(useFormStore().violations, field))
  23. }
  24. return {
  25. fieldViolations,
  26. updateViolationState: (fieldValue: any) => updateViolationState(fieldValue, field)
  27. }
  28. }