mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-09-23 02:53:32 +00:00
5b6a58fba0
- new vue app for serving live chat widget, created subdirectories inside frontend dir `main` and `widget` - vite changes for both main app and widget app. - new backend live chat channel - apis for live chat widget
36 lines
861 B
JavaScript
36 lines
861 B
JavaScript
import {
|
|
FieldContextKey,
|
|
useFieldError,
|
|
useIsFieldDirty,
|
|
useIsFieldTouched,
|
|
useIsFieldValid
|
|
} from 'vee-validate'
|
|
import { inject } from 'vue'
|
|
import { FORM_ITEM_INJECTION_KEY } from './injectionKeys'
|
|
|
|
export function useFormField() {
|
|
const fieldContext = inject(FieldContextKey)
|
|
const fieldItemContext = inject(FORM_ITEM_INJECTION_KEY)
|
|
|
|
if (!fieldContext) throw new Error('useFormField should be used within <FormField>')
|
|
|
|
const { name } = fieldContext
|
|
const id = fieldItemContext
|
|
|
|
const fieldState = {
|
|
valid: useIsFieldValid(name),
|
|
isDirty: useIsFieldDirty(name),
|
|
isTouched: useIsFieldTouched(name),
|
|
error: useFieldError(name)
|
|
}
|
|
|
|
return {
|
|
id,
|
|
name,
|
|
formItemId: `${id}-form-item`,
|
|
formDescriptionId: `${id}-form-item-description`,
|
|
formMessageId: `${id}-form-item-message`,
|
|
...fieldState
|
|
}
|
|
}
|