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

akvo / nmis-mobile / 5385865674

27 Jun 2023 04:46AM UTC coverage: 76.167% (-9.6%) from 85.789%
5385865674

Pull #19

github

web-flow
Merge 3957d2e19 into 13b679e8c
Pull Request #19: Feature/13 initial formik implementation

162 of 231 branches covered (70.13%)

Branch coverage included in aggregate %.

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

311 of 390 relevant lines covered (79.74%)

14.24 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 });
76✔
17

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

23
  const renderField = () => {
76✔
24
    switch (questionField?.type) {
76!
25
      case 'date':
26
        return (
2✔
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 (
45✔
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 (
10✔
72
          <TypeNumber
73
            keyform={keyform}
74
            onChange={handleOnChangeField}
75
            values={values}
76
            {...questionField}
77
          />
78
        );
79
      default:
80
        return (
3✔
81
          <TypeInput
82
            keyform={keyform}
83
            onChange={handleOnChangeField}
84
            values={values}
85
            {...questionField}
86
          />
87
        );
88
    }
89
  };
90

91
  return (
76✔
92
    <View>
93
      {renderField()}
94
      {meta.touched && meta.error ? (
206!
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