@hedia/recommendation-screen 2.1.29-alpha.1 → 2.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/package.json +1 -1
  2. package/src/__tests__/Validations.test.js +1 -1
  3. package/coverage/clover.xml +0 -716
  4. package/coverage/coverage-final.json +0 -28
  5. package/coverage/lcov-report/base.css +0 -224
  6. package/coverage/lcov-report/block-navigation.js +0 -79
  7. package/coverage/lcov-report/favicon.png +0 -0
  8. package/coverage/lcov-report/index.html +0 -201
  9. package/coverage/lcov-report/prettify.css +0 -1
  10. package/coverage/lcov-report/prettify.js +0 -2
  11. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  12. package/coverage/lcov-report/sorter.js +0 -170
  13. package/coverage/lcov-report/src/RecommendationScreen.tsx.html +0 -2501
  14. package/coverage/lcov-report/src/__tests__/index.html +0 -111
  15. package/coverage/lcov-report/src/__tests__/utils.tsx.html +0 -533
  16. package/coverage/lcov-report/src/components/Header.tsx.html +0 -356
  17. package/coverage/lcov-report/src/components/InfoBars.tsx.html +0 -518
  18. package/coverage/lcov-report/src/components/InvisibleNumberInput.tsx.html +0 -587
  19. package/coverage/lcov-report/src/components/LimitationMessage.tsx.html +0 -209
  20. package/coverage/lcov-report/src/components/LineSeparator.tsx.html +0 -161
  21. package/coverage/lcov-report/src/components/RecentInsulin.tsx.html +0 -410
  22. package/coverage/lcov-report/src/components/RecommendationModal.tsx.html +0 -923
  23. package/coverage/lcov-report/src/components/RecommendedCarbs.tsx.html +0 -1061
  24. package/coverage/lcov-report/src/components/RecommendedInsulin.tsx.html +0 -779
  25. package/coverage/lcov-report/src/components/Remeasure.tsx.html +0 -551
  26. package/coverage/lcov-report/src/components/TransferToLogbook.tsx.html +0 -443
  27. package/coverage/lcov-report/src/components/TwoOptionModal.tsx.html +0 -665
  28. package/coverage/lcov-report/src/components/activity/Activity.tsx.html +0 -371
  29. package/coverage/lcov-report/src/components/activity/ActivityIcon.tsx.html +0 -281
  30. package/coverage/lcov-report/src/components/activity/ActivityIntensity.tsx.html +0 -281
  31. package/coverage/lcov-report/src/components/activity/index.html +0 -141
  32. package/coverage/lcov-report/src/components/index.html +0 -276
  33. package/coverage/lcov-report/src/components/mood/Emotion.tsx.html +0 -353
  34. package/coverage/lcov-report/src/components/mood/MoodIcon.tsx.html +0 -335
  35. package/coverage/lcov-report/src/components/mood/index.html +0 -126
  36. package/coverage/lcov-report/src/index.html +0 -111
  37. package/coverage/lcov-report/src/locale/i18nUtils.ts.html +0 -206
  38. package/coverage/lcov-report/src/locale/index.html +0 -111
  39. package/coverage/lcov-report/src/utils/AttentionMessages.tsx.html +0 -554
  40. package/coverage/lcov-report/src/utils/Constants.ts.html +0 -248
  41. package/coverage/lcov-report/src/utils/RecommendationError.tsx.html +0 -620
  42. package/coverage/lcov-report/src/utils/RecommendationUtils.ts.html +0 -764
  43. package/coverage/lcov-report/src/utils/Translations.ts.html +0 -131
  44. package/coverage/lcov-report/src/utils/Utils.ts.html +0 -545
  45. package/coverage/lcov-report/src/utils/Validations.ts.html +0 -1544
  46. package/coverage/lcov-report/src/utils/index.html +0 -201
  47. package/coverage/lcov.info +0 -1611
@@ -1,371 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/components/activity/Activity.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/activity</a> Activity.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>4/4</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>4/4</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- </div>
58
- <div class='status-line high'></div>
59
- <pre><table class="coverage">
60
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
- <a name='L2'></a><a href='#L2'>2</a>
62
- <a name='L3'></a><a href='#L3'>3</a>
63
- <a name='L4'></a><a href='#L4'>4</a>
64
- <a name='L5'></a><a href='#L5'>5</a>
65
- <a name='L6'></a><a href='#L6'>6</a>
66
- <a name='L7'></a><a href='#L7'>7</a>
67
- <a name='L8'></a><a href='#L8'>8</a>
68
- <a name='L9'></a><a href='#L9'>9</a>
69
- <a name='L10'></a><a href='#L10'>10</a>
70
- <a name='L11'></a><a href='#L11'>11</a>
71
- <a name='L12'></a><a href='#L12'>12</a>
72
- <a name='L13'></a><a href='#L13'>13</a>
73
- <a name='L14'></a><a href='#L14'>14</a>
74
- <a name='L15'></a><a href='#L15'>15</a>
75
- <a name='L16'></a><a href='#L16'>16</a>
76
- <a name='L17'></a><a href='#L17'>17</a>
77
- <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a>
82
- <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a>
85
- <a name='L26'></a><a href='#L26'>26</a>
86
- <a name='L27'></a><a href='#L27'>27</a>
87
- <a name='L28'></a><a href='#L28'>28</a>
88
- <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a>
90
- <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a>
107
- <a name='L48'></a><a href='#L48'>48</a>
108
- <a name='L49'></a><a href='#L49'>49</a>
109
- <a name='L50'></a><a href='#L50'>50</a>
110
- <a name='L51'></a><a href='#L51'>51</a>
111
- <a name='L52'></a><a href='#L52'>52</a>
112
- <a name='L53'></a><a href='#L53'>53</a>
113
- <a name='L54'></a><a href='#L54'>54</a>
114
- <a name='L55'></a><a href='#L55'>55</a>
115
- <a name='L56'></a><a href='#L56'>56</a>
116
- <a name='L57'></a><a href='#L57'>57</a>
117
- <a name='L58'></a><a href='#L58'>58</a>
118
- <a name='L59'></a><a href='#L59'>59</a>
119
- <a name='L60'></a><a href='#L60'>60</a>
120
- <a name='L61'></a><a href='#L61'>61</a>
121
- <a name='L62'></a><a href='#L62'>62</a>
122
- <a name='L63'></a><a href='#L63'>63</a>
123
- <a name='L64'></a><a href='#L64'>64</a>
124
- <a name='L65'></a><a href='#L65'>65</a>
125
- <a name='L66'></a><a href='#L66'>66</a>
126
- <a name='L67'></a><a href='#L67'>67</a>
127
- <a name='L68'></a><a href='#L68'>68</a>
128
- <a name='L69'></a><a href='#L69'>69</a>
129
- <a name='L70'></a><a href='#L70'>70</a>
130
- <a name='L71'></a><a href='#L71'>71</a>
131
- <a name='L72'></a><a href='#L72'>72</a>
132
- <a name='L73'></a><a href='#L73'>73</a>
133
- <a name='L74'></a><a href='#L74'>74</a>
134
- <a name='L75'></a><a href='#L75'>75</a>
135
- <a name='L76'></a><a href='#L76'>76</a>
136
- <a name='L77'></a><a href='#L77'>77</a>
137
- <a name='L78'></a><a href='#L78'>78</a>
138
- <a name='L79'></a><a href='#L79'>79</a>
139
- <a name='L80'></a><a href='#L80'>80</a>
140
- <a name='L81'></a><a href='#L81'>81</a>
141
- <a name='L82'></a><a href='#L82'>82</a>
142
- <a name='L83'></a><a href='#L83'>83</a>
143
- <a name='L84'></a><a href='#L84'>84</a>
144
- <a name='L85'></a><a href='#L85'>85</a>
145
- <a name='L86'></a><a href='#L86'>86</a>
146
- <a name='L87'></a><a href='#L87'>87</a>
147
- <a name='L88'></a><a href='#L88'>88</a>
148
- <a name='L89'></a><a href='#L89'>89</a>
149
- <a name='L90'></a><a href='#L90'>90</a>
150
- <a name='L91'></a><a href='#L91'>91</a>
151
- <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a>
153
- <a name='L94'></a><a href='#L94'>94</a>
154
- <a name='L95'></a><a href='#L95'>95</a>
155
- <a name='L96'></a><a href='#L96'>96</a>
156
- <a name='L97'></a><a href='#L97'>97</a>
157
- <a name='L98'></a><a href='#L98'>98</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-yes">25x</span>
192
- <span class="cline-any cline-yes">25x</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-yes">25x</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-neutral">&nbsp;</span>
206
- <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">2x</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Activity as ActivityTypes, BolusCalculator } from "@hedia/types";
255
- import { t } from "@lingui/macro";
256
- import React from "react";
257
- import { Dimensions, StyleSheet, Text, View } from "react-native";
258
- import { i18n } from "../../locale/i18nUtils";
259
- import { Testing } from "../../types/enum";
260
- import { IActivityDisplayProps } from "../../types/types";
261
- import { infoStyles } from "../InfoBars";
262
- import ActivityIcon from "./ActivityIcon";
263
- import ActivityIntensity from "./ActivityIntensity";
264
- &nbsp;
265
- export interface IProps extends IActivityDisplayProps {
266
- /** Details about the activity that affect the calculation */
267
- activity: BolusCalculator.Types.IActivityParams;
268
- /** The fraction (in the interval [0; 1]) by which the insulin recommendation is being reduced due to physical activity */
269
- activityReduction: ActivityTypes.Types.ReductionType;
270
- }
271
- &nbsp;
272
- /**
273
- * Component for displaying a summary of the entered physical activity along with the effect it has on the insulin recommendation.
274
- */
275
- export default class Activity extends React.Component&lt;IProps&gt; {
276
- /**
277
- * Steps:
278
- * 1. Unpack activity, activityType, activityReduction, and activityTitle from props.
279
- * 2. Compute the reductionPercentage by multiplying the activityReduction prop by 100 and rounding to the nearest integer.
280
- * 3. Generate and return the JSX element to display the following on the screen:
281
- * - Print the activity duration.
282
- * - Display the ActivityIcon that corresponds to the type of activity.
283
- * - Display the ActivityIntensity for the activity.
284
- * - Print the reductionPercentage.
285
- * @returns JSX Element containing all the user's physical activity details
286
- */
287
- public render(): JSX.Element {
288
- const { activity, activityType, activityReduction, activityTitle } = this.props;
289
- const reductionPercentage = ((activityReduction ?? 0) * 100).toFixed(0);
290
- &nbsp;
291
- return (
292
- &lt;View style={[infoStyles.container, activityStyles.botMargin]}&gt;
293
- &lt;View style={infoStyles.margin}&gt;
294
- &lt;View style={infoStyles.border}&gt;
295
- &lt;View style={infoStyles.borderContainer}&gt;
296
- &lt;View style={infoStyles.labelContainer}&gt;
297
- &lt;Text style={infoStyles.label}&gt;{i18n._(t`Activity`)}&lt;/Text&gt;
298
- &lt;/View&gt;
299
- &lt;View style={infoStyles.valueUnitContainer}&gt;
300
- &lt;View style={infoStyles.valueContainer}&gt;
301
- &lt;Text style={infoStyles.value}&gt;{activity.activityDuration}&lt;/Text&gt;
302
- &lt;/View&gt;
303
- &lt;View style={infoStyles.unitContainer}&gt;
304
- &lt;Text style={infoStyles.units}&gt;{i18n._(t`min`)}&lt;/Text&gt;
305
- &lt;/View&gt;
306
- &lt;/View&gt;
307
- &lt;/View&gt;
308
- &lt;ActivityIcon activityType={activityType} activityTitle={activityTitle} /&gt;
309
- &lt;ActivityIntensity activityIntensity={activity.activityIntensity} /&gt;
310
- &lt;View style={[infoStyles.borderContainer, activityStyles.topMargin]}&gt;
311
- &lt;Text style={activityStyles.infoText}&gt;
312
- {i18n._(t`Based on the selected activity your insulin recommendation is reduced by:`)}
313
- &lt;/Text&gt;
314
- &lt;/View&gt;
315
- &lt;View style={[infoStyles.borderContainer, activityStyles.verticalMargin]}&gt;
316
- &lt;Text
317
- style={activityStyles.reductionPercentage}
318
- testID={Testing.Id.ActivityTestIds.ActivityReduction}
319
- &gt;
320
- {reductionPercentage}%
321
- &lt;/Text&gt;
322
- &lt;/View&gt;
323
- &lt;/View&gt;
324
- &lt;/View&gt;
325
- &lt;/View&gt;
326
- );
327
- }
328
- }
329
- &nbsp;
330
- const activityStyles = StyleSheet.create({
331
- topMargin: {
332
- marginTop: `2%`,
333
- },
334
- botMargin: {
335
- marginBottom: `2%`,
336
- },
337
- verticalMargin: {
338
- marginBottom: `2%`,
339
- },
340
- infoText: {
341
- color: `rgba(160, 180, 240, 1)`,
342
- fontSize: Dimensions.get(`screen`).width / 24,
343
- },
344
- reductionPercentage: {
345
- color: `white`,
346
- marginTop: `2%`,
347
- fontSize: Dimensions.get(`screen`).width / 18,
348
- fontWeight: `bold`,
349
- },
350
- });
351
- &nbsp;</pre></td></tr></table></pre>
352
-
353
- <div class='push'></div><!-- for sticky footer -->
354
- </div><!-- /wrapper -->
355
- <div class='footer quiet pad2 space-top1 center small'>
356
- Code coverage generated by
357
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
358
- at Fri Nov 26 2021 09:42:41 GMT+0000 (Coordinated Universal Time)
359
- </div>
360
- </div>
361
- <script src="../../../prettify.js"></script>
362
- <script>
363
- window.onload = function () {
364
- prettyPrint();
365
- };
366
- </script>
367
- <script src="../../../sorter.js"></script>
368
- <script src="../../../block-navigation.js"></script>
369
- </body>
370
- </html>
371
-
@@ -1,281 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/components/activity/ActivityIcon.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/activity</a> ActivityIcon.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>8/8</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>6/6</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>8/8</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- </div>
58
- <div class='status-line high'></div>
59
- <pre><table class="coverage">
60
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
- <a name='L2'></a><a href='#L2'>2</a>
62
- <a name='L3'></a><a href='#L3'>3</a>
63
- <a name='L4'></a><a href='#L4'>4</a>
64
- <a name='L5'></a><a href='#L5'>5</a>
65
- <a name='L6'></a><a href='#L6'>6</a>
66
- <a name='L7'></a><a href='#L7'>7</a>
67
- <a name='L8'></a><a href='#L8'>8</a>
68
- <a name='L9'></a><a href='#L9'>9</a>
69
- <a name='L10'></a><a href='#L10'>10</a>
70
- <a name='L11'></a><a href='#L11'>11</a>
71
- <a name='L12'></a><a href='#L12'>12</a>
72
- <a name='L13'></a><a href='#L13'>13</a>
73
- <a name='L14'></a><a href='#L14'>14</a>
74
- <a name='L15'></a><a href='#L15'>15</a>
75
- <a name='L16'></a><a href='#L16'>16</a>
76
- <a name='L17'></a><a href='#L17'>17</a>
77
- <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a>
82
- <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a>
85
- <a name='L26'></a><a href='#L26'>26</a>
86
- <a name='L27'></a><a href='#L27'>27</a>
87
- <a name='L28'></a><a href='#L28'>28</a>
88
- <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a>
90
- <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a>
107
- <a name='L48'></a><a href='#L48'>48</a>
108
- <a name='L49'></a><a href='#L49'>49</a>
109
- <a name='L50'></a><a href='#L50'>50</a>
110
- <a name='L51'></a><a href='#L51'>51</a>
111
- <a name='L52'></a><a href='#L52'>52</a>
112
- <a name='L53'></a><a href='#L53'>53</a>
113
- <a name='L54'></a><a href='#L54'>54</a>
114
- <a name='L55'></a><a href='#L55'>55</a>
115
- <a name='L56'></a><a href='#L56'>56</a>
116
- <a name='L57'></a><a href='#L57'>57</a>
117
- <a name='L58'></a><a href='#L58'>58</a>
118
- <a name='L59'></a><a href='#L59'>59</a>
119
- <a name='L60'></a><a href='#L60'>60</a>
120
- <a name='L61'></a><a href='#L61'>61</a>
121
- <a name='L62'></a><a href='#L62'>62</a>
122
- <a name='L63'></a><a href='#L63'>63</a>
123
- <a name='L64'></a><a href='#L64'>64</a>
124
- <a name='L65'></a><a href='#L65'>65</a>
125
- <a name='L66'></a><a href='#L66'>66</a>
126
- <a name='L67'></a><a href='#L67'>67</a>
127
- <a name='L68'></a><a href='#L68'>68</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-neutral">&nbsp;</span>
134
- <span class="cline-any cline-yes">2x</span>
135
- <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-yes">2x</span>
138
- <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-neutral">&nbsp;</span>
146
- <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-yes">21x</span>
151
- <span class="cline-any cline-yes">25x</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-neutral">&nbsp;</span>
154
- <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-yes">25x</span>
164
- <span class="cline-any cline-yes">25x</span>
165
- <span class="cline-any cline-yes">25x</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-yes">2x</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Activity } from "@hedia/types";
195
- import { t } from "@lingui/macro";
196
- import React from "react";
197
- import { Dimensions, Image, ImageURISource, StyleSheet, Text, View } from "react-native";
198
- import { i18n } from "../../locale/i18nUtils";
199
- import { IActivityDisplayProps } from "../../types/types";
200
- &nbsp;
201
- const { Other } = Activity.Enums.ActivityEnum;
202
- &nbsp;
203
- /** Mapping from ActivityEnums to corresponding image resource. */
204
- export const ACTIVITY_ICONS: Record&lt;Activity.Enums.ActivityEnum, ImageURISource&gt; = {
205
- Run: require(`../../assets/activity/Runner.png`),
206
- Walk: require(`../../assets/activity/Walk.png`),
207
- Cycling: require(`../../assets/activity/Cyclist.png`),
208
- Swim: require(`../../assets/activity/Swimmer.png`),
209
- Other: require(`../../assets/activity/Other.png`),
210
- };
211
- &nbsp;
212
- /** Component used to displat the user's physical activity type icon */
213
- export default class ActivityIcon extends React.Component&lt;IActivityDisplayProps&gt; {
214
- /**
215
- * @returns The value from the ACTIVITY_ICONS constant that corresponds to the value of the activityType prop.
216
- */
217
- public getActivityIcon = (): ImageURISource =&gt; {
218
- return ACTIVITY_ICONS[this.props.activityType ?? Other];
219
- };
220
- &nbsp;
221
- /**
222
- * Steps:
223
- * 1. Unpack activityType and activityTitle from props.
224
- * 2. Create an accessibility label string by appending ‘_activity’ to the enum label corresponding to the activityType prop.
225
- * @returns A JSX element including the following:
226
- * 1. An image component with the generated accessibility label displaying the icon from getActivityIcon().
227
- * 2. The activityTitle if it is truthy or the string “Untitled Activity” otherwise
228
- */
229
- public render(): JSX.Element | null {
230
- const { activityType, activityTitle } = this.props;
231
- const label = `${Activity.Enums.ActivityEnum[activityType ?? Other]}_activity`;
232
- return (
233
- &lt;View style={activityIconStyles.container}&gt;
234
- &lt;Image
235
- style={activityIconStyles.activityIcon}
236
- source={this.getActivityIcon()}
237
- accessibilityLabel={label}
238
- /&gt;
239
- &lt;Text style={activityIconStyles.activityTitle}&gt;{activityTitle || i18n._(t`Untitled Activity`)}&lt;/Text&gt;
240
- &lt;/View&gt;
241
- );
242
- }
243
- }
244
- &nbsp;
245
- const activityIconStyles = StyleSheet.create({
246
- container: {
247
- flex: 1,
248
- flexDirection: `row`,
249
- alignItems: `center`,
250
- marginTop: `1%`,
251
- },
252
- activityIcon: {
253
- resizeMode: `contain`,
254
- height: Dimensions.get(`screen`).width / 16,
255
- },
256
- activityTitle: {
257
- color: `white`,
258
- fontSize: Dimensions.get(`screen`).width / 25,
259
- },
260
- });
261
- &nbsp;</pre></td></tr></table></pre>
262
-
263
- <div class='push'></div><!-- for sticky footer -->
264
- </div><!-- /wrapper -->
265
- <div class='footer quiet pad2 space-top1 center small'>
266
- Code coverage generated by
267
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
268
- at Fri Nov 26 2021 09:42:41 GMT+0000 (Coordinated Universal Time)
269
- </div>
270
- </div>
271
- <script src="../../../prettify.js"></script>
272
- <script>
273
- window.onload = function () {
274
- prettyPrint();
275
- };
276
- </script>
277
- <script src="../../../sorter.js"></script>
278
- <script src="../../../block-navigation.js"></script>
279
- </body>
280
- </html>
281
-