@hedia/recommendation-screen 2.1.14 → 2.1.16
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.
- package/coverage/clover.xml +588 -590
- package/coverage/coverage-final.json +27 -27
- package/coverage/lcov-report/index.html +7 -7
- package/coverage/lcov-report/src/RecommendationScreen.tsx.html +1039 -70
- package/coverage/lcov-report/src/__tests__/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/utils.tsx.html +35 -14
- package/coverage/lcov-report/src/components/Header.tsx.html +14 -5
- package/coverage/lcov-report/src/components/InfoBars.tsx.html +97 -13
- package/coverage/lcov-report/src/components/InvisibleNumberInput.tsx.html +206 -14
- package/coverage/lcov-report/src/components/LimitationMessage.tsx.html +20 -2
- package/coverage/lcov-report/src/components/LineSeparator.tsx.html +13 -4
- package/coverage/lcov-report/src/components/RecentInsulin.tsx.html +30 -3
- package/coverage/lcov-report/src/components/RecommendationModal.tsx.html +200 -20
- package/coverage/lcov-report/src/components/RecommendedCarbs.tsx.html +218 -20
- package/coverage/lcov-report/src/components/RecommendedInsulin.tsx.html +195 -27
- package/coverage/lcov-report/src/components/Remeasure.tsx.html +125 -14
- package/coverage/lcov-report/src/components/TransferToLogbook.tsx.html +71 -8
- package/coverage/lcov-report/src/components/TwoOptionModal.tsx.html +34 -10
- package/coverage/lcov-report/src/components/activity/Activity.tsx.html +58 -7
- package/coverage/lcov-report/src/components/activity/ActivityIcon.tsx.html +42 -3
- package/coverage/lcov-report/src/components/activity/ActivityIntensity.tsx.html +30 -6
- package/coverage/lcov-report/src/components/activity/index.html +1 -1
- package/coverage/lcov-report/src/components/index.html +10 -10
- package/coverage/lcov-report/src/components/mood/Emotion.tsx.html +85 -10
- package/coverage/lcov-report/src/components/mood/MoodIcon.tsx.html +87 -12
- package/coverage/lcov-report/src/components/mood/index.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/locale/i18nUtils.ts.html +47 -8
- package/coverage/lcov-report/src/locale/index.html +1 -1
- package/coverage/lcov-report/src/utils/AttentionMessages.tsx.html +235 -7
- package/coverage/lcov-report/src/utils/Constants.ts.html +71 -2
- package/coverage/lcov-report/src/utils/RecommendationError.tsx.html +89 -2
- package/coverage/lcov-report/src/utils/RecommendationUtils.ts.html +337 -40
- package/coverage/lcov-report/src/utils/Translations.ts.html +27 -3
- package/coverage/lcov-report/src/utils/Utils.ts.html +295 -19
- package/coverage/lcov-report/src/utils/Validations.ts.html +763 -61
- package/coverage/lcov-report/src/utils/index.html +1 -1
- package/coverage/lcov.info +1243 -1249
- package/ignore-git.sh +1 -0
- package/ignore-publish.sh +1 -0
- package/package.json +5 -3
- package/src/RecommendationScreen.d.ts +323 -6
- package/src/RecommendationScreen.js +234 -1
- package/src/__tests__/RecommendationScreen.test.js +35 -1
- package/src/__tests__/utils.d.ts +5 -5
- package/src/__tests__/utils.js +1 -1
- package/src/components/Header.d.ts +4 -43
- package/src/components/Header.js +3 -1
- package/src/components/Icon.d.ts +9 -2
- package/src/components/Icon.js +6 -1
- package/src/components/InfoBars.d.ts +28 -0
- package/src/components/InfoBars.js +23 -0
- package/src/components/InvisibleNumberInput.d.ts +66 -3
- package/src/components/InvisibleNumberInput.js +53 -0
- package/src/components/LimitationMessage.d.ts +6 -0
- package/src/components/LimitationMessage.js +4 -0
- package/src/components/LineSeparator.d.ts +4 -2
- package/src/components/LineSeparator.js +2 -0
- package/src/components/RecentInsulin.d.ts +10 -2
- package/src/components/RecentInsulin.js +7 -0
- package/src/components/RecommendationModal.d.ts +61 -3
- package/src/components/RecommendationModal.js +45 -0
- package/src/components/RecommendedCarbs.d.ts +71 -4
- package/src/components/RecommendedCarbs.js +56 -0
- package/src/components/RecommendedInsulin.d.ts +66 -4
- package/src/components/RecommendedInsulin.js +51 -5
- package/src/components/Remeasure.d.ts +38 -2
- package/src/components/Remeasure.js +31 -0
- package/src/components/TransferToLogbook.d.ts +23 -3
- package/src/components/TransferToLogbook.js +18 -0
- package/src/components/TwoOptionModal.d.ts +12 -1
- package/src/components/TwoOptionModal.js +3 -3
- package/src/components/activity/Activity.d.ts +21 -5
- package/src/components/activity/Activity.js +14 -0
- package/src/components/activity/ActivityIcon.d.ts +15 -0
- package/src/components/activity/ActivityIcon.js +14 -1
- package/src/components/activity/ActivityIntensity.d.ts +11 -4
- package/src/components/activity/ActivityIntensity.js +7 -0
- package/src/components/mood/Emotion.d.ts +26 -1
- package/src/components/mood/Emotion.js +20 -0
- package/src/components/mood/MoodIcon.d.ts +28 -2
- package/src/components/mood/MoodIcon.js +20 -2
- package/src/locale/i18nUtils.d.ts +13 -0
- package/src/locale/i18nUtils.js +13 -0
- package/src/types/enum.d.ts +10 -0
- package/src/types/enum.js +9 -0
- package/src/types/types.d.ts +9 -7
- package/src/utils/AttentionMessages.d.ts +65 -0
- package/src/utils/AttentionMessages.js +65 -1
- package/src/utils/Constants.d.ts +23 -0
- package/src/utils/Constants.js +23 -0
- package/src/utils/RecommendationError.d.ts +29 -0
- package/src/utils/RecommendationError.js +29 -0
- package/src/utils/RecommendationUtils.d.ts +98 -6
- package/src/utils/RecommendationUtils.js +92 -0
- package/src/utils/Translations.d.ts +7 -0
- package/src/utils/Translations.js +7 -0
- package/src/utils/Utils.d.ts +92 -0
- package/src/utils/Utils.js +94 -2
- package/src/utils/Validations.d.ts +232 -9
- package/src/utils/Validations.js +225 -2
- package/typedoc.json +13 -0
|
@@ -123,7 +123,32 @@
|
|
|
123
123
|
<a name='L64'></a><a href='#L64'>64</a>
|
|
124
124
|
<a name='L65'></a><a href='#L65'>65</a>
|
|
125
125
|
<a name='L66'></a><a href='#L66'>66</a>
|
|
126
|
-
<a name='L67'></a><a href='#L67'>67</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
127
152
|
<span class="cline-any cline-neutral"> </span>
|
|
128
153
|
<span class="cline-any cline-neutral"> </span>
|
|
129
154
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -138,19 +163,41 @@
|
|
|
138
163
|
<span class="cline-any cline-neutral"> </span>
|
|
139
164
|
<span class="cline-any cline-neutral"> </span>
|
|
140
165
|
<span class="cline-any cline-neutral"> </span>
|
|
141
|
-
<span class="cline-any cline-
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-neutral"> </span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
174
|
+
<span class="cline-any cline-neutral"> </span>
|
|
175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
179
|
+
<span class="cline-any cline-neutral"> </span>
|
|
180
|
+
<span class="cline-any cline-yes">69x</span>
|
|
142
181
|
<span class="cline-any cline-yes">8x</span>
|
|
143
182
|
<span class="cline-any cline-neutral"> </span>
|
|
144
183
|
<span class="cline-any cline-neutral"> </span>
|
|
145
|
-
<span class="cline-any cline-yes">61x</span>
|
|
146
|
-
<span class="cline-any cline-yes">1360x</span>
|
|
147
184
|
<span class="cline-any cline-neutral"> </span>
|
|
148
185
|
<span class="cline-any cline-neutral"> </span>
|
|
149
186
|
<span class="cline-any cline-neutral"> </span>
|
|
150
|
-
<span class="cline-any cline-yes">136x</span>
|
|
151
187
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-
|
|
153
|
-
<span class="cline-any cline-
|
|
188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
|
+
<span class="cline-any cline-yes">69x</span>
|
|
193
|
+
<span class="cline-any cline-yes">1440x</span>
|
|
194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
197
|
+
<span class="cline-any cline-yes">144x</span>
|
|
198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
199
|
+
<span class="cline-any cline-yes">720x</span>
|
|
200
|
+
<span class="cline-any cline-yes">720x</span>
|
|
154
201
|
<span class="cline-any cline-neutral"> </span>
|
|
155
202
|
<span class="cline-any cline-yes">8x</span>
|
|
156
203
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -163,7 +210,10 @@
|
|
|
163
210
|
<span class="cline-any cline-neutral"> </span>
|
|
164
211
|
<span class="cline-any cline-neutral"> </span>
|
|
165
212
|
<span class="cline-any cline-neutral"> </span>
|
|
166
|
-
<span class="cline-any cline-
|
|
213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-neutral"> </span>
|
|
215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
216
|
+
<span class="cline-any cline-yes">144x</span>
|
|
167
217
|
<span class="cline-any cline-neutral"> </span>
|
|
168
218
|
<span class="cline-any cline-neutral"> </span>
|
|
169
219
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -198,16 +248,38 @@ import MoodIcon from "./MoodIcon";
|
|
|
198
248
|
|
|
199
249
|
const MoodEnum = Logbook.Enums.MoodEnum;
|
|
200
250
|
|
|
201
|
-
interface IProps {
|
|
251
|
+
export interface IProps {
|
|
252
|
+
/** Indicates which mood if any that is currently selected. */
|
|
202
253
|
currentMood: Logbook.Enums.MoodEnum | null;
|
|
254
|
+
/**
|
|
255
|
+
* Callback function to call when the selected icon changes. Takes a single optional argument, mood, which is a {@link Logbook.Enums.MoodEnum} | null.
|
|
256
|
+
* Doesn’t have a return value.
|
|
257
|
+
* */
|
|
203
258
|
moodSelected(mood: Logbook.Enums.MoodEnum | null): void;
|
|
204
259
|
}
|
|
205
260
|
|
|
261
|
+
/** The Emotion component displays a horizontally arranged set of icons representing various moods and allows the user to select one. */
|
|
206
262
|
export default class Emotion extends React.Component<IProps> {
|
|
263
|
+
/**
|
|
264
|
+
* Handle what should happen when the user picks taps on one of the mood icons.
|
|
265
|
+
*
|
|
266
|
+
* Steps:
|
|
267
|
+
* 1. Call the moodSelected prop callback function with selected as argument if toggle is true and null as argument otherwise.
|
|
268
|
+
* @param selected Integer number that represents the icon that was tapped.
|
|
269
|
+
* @param toggle Boolean indicating whether the icon should be deselected.
|
|
270
|
+
*/
|
|
207
271
|
public handleIconPress = (selected: Logbook.Enums.MoodEnum, toggle: boolean): void => {
|
|
208
272
|
this.props.moodSelected(toggle ? selected : null);
|
|
209
273
|
};
|
|
210
274
|
|
|
275
|
+
/**
|
|
276
|
+
* Compose a sequence of MoodIcons
|
|
277
|
+
*
|
|
278
|
+
* Steps:
|
|
279
|
+
* 1. Make a sequence of MoodEnum values from the properties of the MoodEnum object and save the sequence as a variable named values.
|
|
280
|
+
* 2. Map each of the elements of the values sequence to a MoodIcon.
|
|
281
|
+
* @returns JSX Element consisting of an array of MoodIcon components.
|
|
282
|
+
*/
|
|
211
283
|
public mappedMoods = (): Array<JSX.Element> => {
|
|
212
284
|
const values = Object.values(MoodEnum).filter((val): boolean => isNaN(Number(val))) as Array<
|
|
213
285
|
keyof typeof MoodEnum
|
|
@@ -228,6 +300,9 @@ export default class Emotion extends React.Component<IProps> {
|
|
|
228
300
|
);
|
|
229
301
|
};
|
|
230
302
|
|
|
303
|
+
/**
|
|
304
|
+
* @returns JSX element to display the mood icons from mappedMoods() in a horizontal arrangement.
|
|
305
|
+
*/
|
|
231
306
|
public render(): JSX.Element {
|
|
232
307
|
return (
|
|
233
308
|
<View style={emotionStyles.container}>
|
|
@@ -262,7 +337,7 @@ const emotionStyles = StyleSheet.create({
|
|
|
262
337
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
263
338
|
Code coverage generated by
|
|
264
339
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
265
|
-
at
|
|
340
|
+
at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
|
|
266
341
|
</div>
|
|
267
342
|
</div>
|
|
268
343
|
<script src="../../../prettify.js"></script>
|
|
@@ -117,7 +117,32 @@
|
|
|
117
117
|
<a name='L58'></a><a href='#L58'>58</a>
|
|
118
118
|
<a name='L59'></a><a href='#L59'>59</a>
|
|
119
119
|
<a name='L60'></a><a href='#L60'>60</a>
|
|
120
|
-
<a name='L61'></a><a href='#L61'>61</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
121
146
|
<span class="cline-any cline-neutral"> </span>
|
|
122
147
|
<span class="cline-any cline-neutral"> </span>
|
|
123
148
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -129,6 +154,14 @@
|
|
|
129
154
|
<span class="cline-any cline-neutral"> </span>
|
|
130
155
|
<span class="cline-any cline-neutral"> </span>
|
|
131
156
|
<span class="cline-any cline-neutral"> </span>
|
|
157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
165
|
<span class="cline-any cline-yes">3x</span>
|
|
133
166
|
<span class="cline-any cline-neutral"> </span>
|
|
134
167
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -137,6 +170,7 @@
|
|
|
137
170
|
<span class="cline-any cline-neutral"> </span>
|
|
138
171
|
<span class="cline-any cline-neutral"> </span>
|
|
139
172
|
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
140
174
|
<span class="cline-any cline-yes">3x</span>
|
|
141
175
|
<span class="cline-any cline-neutral"> </span>
|
|
142
176
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -146,21 +180,37 @@
|
|
|
146
180
|
<span class="cline-any cline-neutral"> </span>
|
|
147
181
|
<span class="cline-any cline-neutral"> </span>
|
|
148
182
|
<span class="cline-any cline-neutral"> </span>
|
|
149
|
-
<span class="cline-any cline-
|
|
150
|
-
<span class="cline-any cline-
|
|
183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
185
|
+
<span class="cline-any cline-neutral"> </span>
|
|
186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
|
+
<span class="cline-any cline-yes">350x</span>
|
|
193
|
+
<span class="cline-any cline-yes">730x</span>
|
|
151
194
|
<span class="cline-any cline-yes">19x</span>
|
|
152
195
|
<span class="cline-any cline-neutral"> </span>
|
|
153
|
-
<span class="cline-any cline-yes">
|
|
196
|
+
<span class="cline-any cline-yes">711x</span>
|
|
197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
154
198
|
<span class="cline-any cline-neutral"> </span>
|
|
155
199
|
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
<span class="cline-any cline-
|
|
200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
204
|
+
<span class="cline-any cline-neutral"> </span>
|
|
205
|
+
<span class="cline-any cline-yes">350x</span>
|
|
157
206
|
<span class="cline-any cline-yes">13x</span>
|
|
158
207
|
<span class="cline-any cline-neutral"> </span>
|
|
159
208
|
<span class="cline-any cline-neutral"> </span>
|
|
160
209
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-
|
|
162
|
-
<span class="cline-any cline-yes">
|
|
163
|
-
<span class="cline-any cline-yes">
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-yes">730x</span>
|
|
212
|
+
<span class="cline-any cline-yes">730x</span>
|
|
213
|
+
<span class="cline-any cline-yes">730x</span>
|
|
164
214
|
<span class="cline-any cline-neutral"> </span>
|
|
165
215
|
<span class="cline-any cline-neutral"> </span>
|
|
166
216
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -183,13 +233,21 @@ import { Dimensions, Image, ImageURISource, StyleSheet, TouchableOpacity } from
|
|
|
183
233
|
|
|
184
234
|
const MoodEnum = Logbook.Enums.MoodEnum;
|
|
185
235
|
|
|
186
|
-
interface IProps {
|
|
236
|
+
export interface IProps {
|
|
237
|
+
/** Which mood the mood component should represent. */
|
|
187
238
|
mood: Logbook.Enums.MoodEnum;
|
|
239
|
+
/** Boolean indicating whether the mood component represents the currently active mood. */
|
|
188
240
|
active: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Callback function to be called when the mood icon is pressed.
|
|
243
|
+
* The function has no return value.
|
|
244
|
+
* @param toggle Boolean value to indicate whether the icon should be turned on (if true) or off (if false).
|
|
245
|
+
*/
|
|
189
246
|
onPress(toggle: boolean): void;
|
|
190
247
|
}
|
|
191
248
|
|
|
192
|
-
|
|
249
|
+
/** Mapping from {@link Logbook.Enums.MoodEnum} to corresponding image resources */
|
|
250
|
+
export const MOODS_INACTIVE: Record<number, ImageURISource> = {
|
|
193
251
|
1: require(`../../assets/mood/sad.png`),
|
|
194
252
|
2: require(`../../assets/mood/semi_sad.png`),
|
|
195
253
|
3: require(`../../assets/mood/neutral.png`),
|
|
@@ -197,7 +255,8 @@ const MOODS_INACTIVE: Record<number, ImageURISource> = {
|
|
|
197
255
|
5: require(`../../assets/mood/happy.png`),
|
|
198
256
|
};
|
|
199
257
|
|
|
200
|
-
|
|
258
|
+
/** Mapping from {@link Logbook.Enums.MoodEnum} to corresponding image resources */
|
|
259
|
+
export const MOODS_ACTIVE: Record<number, ImageURISource> = {
|
|
201
260
|
1: require(`../../assets/mood/sad_active.png`),
|
|
202
261
|
2: require(`../../assets/mood/semi_sad_active.png`),
|
|
203
262
|
3: require(`../../assets/mood/neutral_active.png`),
|
|
@@ -205,7 +264,16 @@ const MOODS_ACTIVE: Record<number, ImageURISource> = {
|
|
|
205
264
|
5: require(`../../assets/mood/happy_active.png`),
|
|
206
265
|
};
|
|
207
266
|
|
|
267
|
+
/** Component to display a mood icon base on its props. */
|
|
208
268
|
export default class MoodIcon extends React.Component<IProps> {
|
|
269
|
+
/**
|
|
270
|
+
* Get the icon image resource that should be displayed for the mood icon.
|
|
271
|
+
*
|
|
272
|
+
* Steps:
|
|
273
|
+
* 1. If the active prop is true, return the value from the MOODS_ACTIVE constant that corresponds to the value of the mood prop.
|
|
274
|
+
* 2. (Only reached if the active prop is false) Return the value from the MOODS_INACTIVE constant that corresponds to the value of the mood prop.
|
|
275
|
+
* @returns Image resource that should be displayed for the mood icon.
|
|
276
|
+
*/
|
|
209
277
|
public getMoodIcon = (): ImageURISource => {
|
|
210
278
|
if (this.props.active) {
|
|
211
279
|
return MOODS_ACTIVE[this.props.mood];
|
|
@@ -213,10 +281,17 @@ export default class MoodIcon extends React.Component<IProps> {
|
|
|
213
281
|
return MOODS_INACTIVE[this.props.mood];
|
|
214
282
|
};
|
|
215
283
|
|
|
284
|
+
/**
|
|
285
|
+
* Handle what happens when the mood icon is pressed.
|
|
286
|
+
*
|
|
287
|
+
* Steps:
|
|
288
|
+
* 1. Call the onPress prop callback function with the toggle argument set to the inverse value of the active prop.
|
|
289
|
+
*/
|
|
216
290
|
public handleOnPress = (): void => {
|
|
217
291
|
this.props.onPress(!this.props.active);
|
|
218
292
|
};
|
|
219
293
|
|
|
294
|
+
/** JSX element to display the mood icon retrieved using the getMoodIcon() method. */
|
|
220
295
|
public render(): JSX.Element {
|
|
221
296
|
const { mood, active } = this.props;
|
|
222
297
|
const label = `${MoodEnum[mood]}_${active}`;
|
|
@@ -244,7 +319,7 @@ const moodIconStyles = StyleSheet.create({
|
|
|
244
319
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
245
320
|
Code coverage generated by
|
|
246
321
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
247
|
-
at
|
|
322
|
+
at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
|
|
248
323
|
</div>
|
|
249
324
|
</div>
|
|
250
325
|
<script src="../../../prettify.js"></script>
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
111
111
|
Code coverage generated by
|
|
112
112
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
113
|
-
at
|
|
113
|
+
at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
|
|
114
114
|
</div>
|
|
115
115
|
</div>
|
|
116
116
|
<script src="../../../prettify.js"></script>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<script src="../prettify.js"></script>
|
|
@@ -86,7 +86,20 @@
|
|
|
86
86
|
<a name='L27'></a><a href='#L27'>27</a>
|
|
87
87
|
<a name='L28'></a><a href='#L28'>28</a>
|
|
88
88
|
<a name='L29'></a><a href='#L29'>29</a>
|
|
89
|
-
<a name='L30'></a><a href='#L30'>30</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
90
103
|
<span class="cline-any cline-neutral"> </span>
|
|
91
104
|
<span class="cline-any cline-neutral"> </span>
|
|
92
105
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -101,19 +114,32 @@
|
|
|
101
114
|
<span class="cline-any cline-neutral"> </span>
|
|
102
115
|
<span class="cline-any cline-neutral"> </span>
|
|
103
116
|
<span class="cline-any cline-neutral"> </span>
|
|
117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
104
118
|
<span class="cline-any cline-yes">15x</span>
|
|
105
119
|
<span class="cline-any cline-neutral"> </span>
|
|
106
120
|
<span class="cline-any cline-neutral"> </span>
|
|
107
121
|
<span class="cline-any cline-neutral"> </span>
|
|
108
122
|
<span class="cline-any cline-neutral"> </span>
|
|
109
123
|
<span class="cline-any cline-neutral"> </span>
|
|
110
|
-
<span class="cline-any cline-yes">64x</span>
|
|
111
124
|
<span class="cline-any cline-neutral"> </span>
|
|
112
|
-
<span class="cline-any cline-
|
|
113
|
-
<span class="cline-any cline-
|
|
114
|
-
<span class="cline-any cline-
|
|
115
|
-
<span class="cline-any cline-
|
|
116
|
-
<span class="cline-any cline-
|
|
125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-yes">72x</span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-yes">72x</span>
|
|
139
|
+
<span class="cline-any cline-yes">72x</span>
|
|
140
|
+
<span class="cline-any cline-yes">72x</span>
|
|
141
|
+
<span class="cline-any cline-yes">72x</span>
|
|
142
|
+
<span class="cline-any cline-yes">72x</span>
|
|
117
143
|
<span class="cline-any cline-neutral"> </span>
|
|
118
144
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Languages } from "@hedia/types";
|
|
119
145
|
import { Catalog, I18n, setupI18n } from "@lingui/core";
|
|
@@ -130,11 +156,24 @@ const languageMap: Record<Languages, Catalog> = {
|
|
|
130
156
|
[Languages.it]: require(`./it/messages.js`),
|
|
131
157
|
};
|
|
132
158
|
|
|
159
|
+
/** Internalisation object containing the translations. Call changeLanguage in order to change the language. */
|
|
133
160
|
export const i18n = setupI18n({
|
|
134
161
|
language: Languages.en,
|
|
135
162
|
catalogs: languageMap,
|
|
136
163
|
});
|
|
137
164
|
|
|
165
|
+
/**
|
|
166
|
+
* Change the language that is used to display text on the recommendation screen.
|
|
167
|
+
*
|
|
168
|
+
* Steps:
|
|
169
|
+
* 1. If the given language is in the language catalog:
|
|
170
|
+
* - Call the i18n package’s activate function with language as argument.
|
|
171
|
+
* 2. Else:
|
|
172
|
+
* - Call the i18n activate function with "English" as argument.
|
|
173
|
+
* 3. Return the i18n object.
|
|
174
|
+
* @param language The language to switch to.
|
|
175
|
+
* @returns Object that represents a i18n configuration for the given language.
|
|
176
|
+
*/
|
|
138
177
|
export function changeLanguage(language: Languages): I18n {
|
|
139
178
|
languageMap[language] ? i18n.activate(language) : i18n.activate(Languages.en);
|
|
140
179
|
// Temporary way of setting the moment locale to en-gb since we currently identify GB English with "en".
|
|
@@ -151,7 +190,7 @@ export function changeLanguage(language: Languages): I18n {
|
|
|
151
190
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
152
191
|
Code coverage generated by
|
|
153
192
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
154
|
-
at
|
|
193
|
+
at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
|
|
155
194
|
</div>
|
|
156
195
|
</div>
|
|
157
196
|
<script src="../../prettify.js"></script>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Thu Jul 29 2021 07:55:43 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<script src="../../prettify.js"></script>
|