Coveralls logob
Coveralls logo
  • Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

unform / unform / 518758219

28 Jan 2021 - 18:06 coverage: 96.133% (+0.02%) from 96.111%
518758219

Pull #349

github

GitHub
Merge 7907b2735 into 36fbfd0b1
Pull Request #349: chore: Lock dependencies, fix tests and eslint

40 of 46 branches covered (86.96%)

Branch coverage included in aggregate %.

80 of 81 new or added lines in 8 files covered. (98.77%)

134 of 135 relevant lines covered (99.26%)

12.07 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.59
/packages/core/lib/useField.ts
1
import { useContext, useEffect, useMemo, useCallback } from 'react'
3×
2

3
import dot from 'dot-object'
3×
4

5
import { FormContext } from './Context'
3×
6
import { UnformContext } from './types'
7

8
export function useField(name: string) {
3×
9
  const {
10
    initialData,
36×
11
    errors,
36×
12
    scopePath,
36×
13
    unregisterField,
36×
14
    registerField,
36×
15
    clearFieldError,
36×
16
  } = useContext<UnformContext>(FormContext)
36×
17

18
  if (!name) {
Branches [[0, 0]] missed. 36×
NEW
19
    throw new Error('You need to provide the "name" prop.')
!
20
  }
21

22
  const fieldName = useMemo(() => {
36×
23
    return scopePath ? `${scopePath}.${name}` : name
31×
24
  }, [name, scopePath])
25

26
  const defaultValue = useMemo(() => {
36×
27
    return dot.pick(fieldName, initialData)
31×
28
  }, [fieldName, initialData])
29

30
  const error = useMemo(() => {
36×
31
    return errors[fieldName]
36×
32
  }, [errors, fieldName])
33

34
  const clearError = useCallback(() => {
36×
35
    clearFieldError(fieldName)
1×
36
  }, [clearFieldError, fieldName])
37

38
  useEffect(() => () => unregisterField(fieldName), [
36×
39
    fieldName,
40
    unregisterField,
41
  ])
42

43
  return {
36×
44
    fieldName,
45
    registerField,
46
    defaultValue,
47
    clearError,
48
    error,
49
  }
50
}
Troubleshooting · Open an Issue · Sales · Support · ENTERPRISE · CAREERS · STATUS
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2023 Coveralls, Inc