• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

akvo / nmis-mobile / 5390013314

27 Jun 2023 12:51PM UTC coverage: 76.971% (-10.5%) from 87.442%
5390013314

Pull #19

github

web-flow
Merge 56428de24 into 2a3a7f4c6
Pull Request #19: Feature/13 initial formik implementation

175 of 244 branches covered (71.72%)

Branch coverage included in aggregate %.

267 of 267 new or added lines in 18 files covered. (100.0%)

323 of 403 relevant lines covered (80.15%)

14.95 hits per line

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

73.08
/app/src/form/components/QuestionField.js
1
import React from 'react';
2
import {
3
  TypeDate,
4
  TypeImage,
5
  TypeInput,
6
  TypeMultipleOption,
7
  TypeOption,
8
  TypeText,
9
  TypeNumber,
10
} from '../fields';
11
import { useField } from 'formik';
12
import { View, Text } from 'react-native';
13
import { styles } from '../styles';
14

15
const QuestionField = ({ keyform, field: questionField, setFieldValue, values, validate }) => {
8✔
16
  const [field, meta, helpers] = useField({ name: questionField.id, validate });
124✔
17

18
  const handleOnChangeField = (id, value) => {
124✔
19
    helpers.setTouched({ [field.name]: true });
×
20
    setFieldValue(id, value);
×
21
  };
22

23
  const renderField = () => {
124✔
24
    switch (questionField?.type) {
124!
25
      case 'date':
26
        return (
14✔
27
          <TypeDate
28
            keyform={keyform}
29
            onChange={handleOnChangeField}
30
            values={values}
31
            {...questionField}
32
          />
33
        );
34
      case 'image':
35
        return (
×
36
          <TypeImage
37
            keyform={keyform}
38
            onChange={handleOnChangeField}
39
            values={values}
40
            {...questionField}
41
          />
42
        );
43
      case 'multiple_option':
44
        return (
×
45
          <TypeMultipleOption
46
            keyform={keyform}
47
            onChange={handleOnChangeField}
48
            values={values}
49
            {...questionField}
50
          />
51
        );
52
      case 'option':
53
        return (
57✔
54
          <TypeOption
55
            keyform={keyform}
56
            onChange={handleOnChangeField}
57
            values={values}
58
            {...questionField}
59
          />
60
        );
61
      case 'text':
62
        return (
16✔
63
          <TypeText
64
            keyform={keyform}
65
            onChange={handleOnChangeField}
66
            values={values}
67
            {...questionField}
68
          />
69
        );
70
      case 'number':
71
        return (
22✔
72
          <TypeNumber
73
            keyform={keyform}
74
            onChange={handleOnChangeField}
75
            values={values}
76
            {...questionField}
77
          />
78
        );
79
      default:
80
        return (
15✔
81
          <TypeInput
82
            keyform={keyform}
83
            onChange={handleOnChangeField}
84
            values={values}
85
            {...questionField}
86
          />
87
        );
88
    }
89
  };
90

91
  return (
124✔
92
    <View>
93
      {renderField()}
94
      {meta.touched && meta.error ? (
350!
95
        <Text style={styles.validationErrorText}>{meta.error}</Text>
96
      ) : null}
97
    </View>
98
  );
99
};
100

101
export default QuestionField;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc