@hedia/recommendation-screen 2.2.0-alpha.42 → 2.2.0-alpha.43
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/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/src/RecommendationScreen.d.ts +35 -37
- package/dist/src/RecommendationScreen.js +83 -95
- package/dist/src/RecommendationScreen.js.map +1 -0
- package/dist/src/assets/IconsSVG/Close.d.ts +4 -0
- package/dist/src/assets/IconsSVG/Close.js +7 -0
- package/dist/src/assets/IconsSVG/Close.js.map +1 -0
- package/dist/src/assets/IconsSVG/CloseOutlined.d.ts +4 -0
- package/dist/src/assets/IconsSVG/CloseOutlined.js +9 -0
- package/dist/src/assets/IconsSVG/CloseOutlined.js.map +1 -0
- package/dist/src/assets/IconsSVG/Edit.d.ts +4 -0
- package/dist/src/assets/IconsSVG/Edit.js +8 -0
- package/dist/src/assets/IconsSVG/Edit.js.map +1 -0
- package/dist/src/assets/IconsSVG/activity/Cycling.d.ts +4 -0
- package/dist/src/assets/IconsSVG/activity/Cycling.js +12 -0
- package/dist/src/assets/IconsSVG/activity/Cycling.js.map +1 -0
- package/dist/src/assets/IconsSVG/activity/Running.d.ts +4 -0
- package/dist/src/assets/IconsSVG/activity/Running.js +10 -0
- package/dist/src/assets/IconsSVG/activity/Running.js.map +1 -0
- package/dist/src/assets/IconsSVG/activity/Stretching.d.ts +4 -0
- package/dist/src/assets/IconsSVG/activity/Stretching.js +10 -0
- package/dist/src/assets/IconsSVG/activity/Stretching.js.map +1 -0
- package/dist/src/assets/IconsSVG/activity/Swimming.d.ts +4 -0
- package/dist/src/assets/IconsSVG/activity/Swimming.js +13 -0
- package/dist/src/assets/IconsSVG/activity/Swimming.js.map +1 -0
- package/dist/src/assets/IconsSVG/activity/Walking.d.ts +4 -0
- package/dist/src/assets/IconsSVG/activity/Walking.js +11 -0
- package/dist/src/assets/IconsSVG/activity/Walking.js.map +1 -0
- package/dist/src/assets/IconsSVG/mood/Happy.d.ts +4 -0
- package/dist/src/assets/IconsSVG/mood/Happy.js +11 -0
- package/dist/src/assets/IconsSVG/mood/Happy.js.map +1 -0
- package/dist/src/assets/IconsSVG/mood/Neutral.d.ts +4 -0
- package/dist/src/assets/IconsSVG/mood/Neutral.js +11 -0
- package/dist/src/assets/IconsSVG/mood/Neutral.js.map +1 -0
- package/dist/src/assets/IconsSVG/mood/Sad.d.ts +4 -0
- package/dist/src/assets/IconsSVG/mood/Sad.js +11 -0
- package/dist/src/assets/IconsSVG/mood/Sad.js.map +1 -0
- package/dist/src/assets/IconsSVG/mood/SemiHappy.d.ts +4 -0
- package/dist/src/assets/IconsSVG/mood/SemiHappy.js +11 -0
- package/dist/src/assets/IconsSVG/mood/SemiHappy.js.map +1 -0
- package/dist/src/assets/IconsSVG/mood/SemiSad.d.ts +4 -0
- package/dist/src/assets/IconsSVG/mood/SemiSad.js +11 -0
- package/dist/src/assets/IconsSVG/mood/SemiSad.js.map +1 -0
- package/dist/src/components/ExitModal.d.ts +23 -0
- package/dist/src/components/ExitModal.js +91 -0
- package/dist/src/components/ExitModal.js.map +1 -0
- package/dist/src/components/InfoBars.d.ts +8 -28
- package/dist/src/components/InfoBars.js +28 -57
- package/dist/src/components/InfoBars.js.map +1 -0
- package/dist/src/components/InvisibleNumberInput.js +8 -13
- package/dist/src/components/InvisibleNumberInput.js.map +1 -0
- package/dist/src/components/LineSeparator.d.ts +5 -1
- package/dist/src/components/LineSeparator.js +2 -3
- package/dist/src/components/LineSeparator.js.map +1 -0
- package/dist/src/components/RecentInsulin.d.ts +2 -1
- package/dist/src/components/RecentInsulin.js +43 -46
- package/dist/src/components/RecentInsulin.js.map +1 -0
- package/dist/src/components/RecommendationModal.d.ts +36 -63
- package/dist/src/components/RecommendationModal.js +94 -113
- package/dist/src/components/RecommendationModal.js.map +1 -0
- package/dist/src/components/RecommendedCarbs.d.ts +2 -0
- package/dist/src/components/RecommendedCarbs.js +76 -89
- package/dist/src/components/RecommendedCarbs.js.map +1 -0
- package/dist/src/components/RecommendedInsulin.d.ts +1 -1
- package/dist/src/components/RecommendedInsulin.js +54 -63
- package/dist/src/components/RecommendedInsulin.js.map +1 -0
- package/dist/src/components/Remeasure.d.ts +5 -15
- package/dist/src/components/Remeasure.js +38 -72
- package/dist/src/components/Remeasure.js.map +1 -0
- package/dist/src/components/Text.d.ts +2 -2
- package/dist/src/components/Text.js +1 -0
- package/dist/src/components/Text.js.map +1 -0
- package/dist/src/components/TimeoutModal.d.ts +22 -0
- package/dist/src/components/TimeoutModal.js +84 -0
- package/dist/src/components/TimeoutModal.js.map +1 -0
- package/dist/src/components/TransferToLogbook.js +16 -15
- package/dist/src/components/TransferToLogbook.js.map +1 -0
- package/dist/src/components/activity/Activity.d.ts +2 -2
- package/dist/src/components/activity/Activity.js +51 -42
- package/dist/src/components/activity/Activity.js.map +1 -0
- package/dist/src/components/activity/ActivityIcon.d.ts +7 -7
- package/dist/src/components/activity/ActivityIcon.js +33 -25
- package/dist/src/components/activity/ActivityIcon.js.map +1 -0
- package/dist/src/components/activity/ActivityIntensity.d.ts +1 -1
- package/dist/src/components/activity/ActivityIntensity.js +13 -18
- package/dist/src/components/activity/ActivityIntensity.js.map +1 -0
- package/dist/src/components/mood/Emotion.d.ts +1 -1
- package/dist/src/components/mood/Emotion.js +14 -11
- package/dist/src/components/mood/Emotion.js.map +1 -0
- package/dist/src/components/mood/MoodIcon.d.ts +4 -5
- package/dist/src/components/mood/MoodIcon.js +28 -23
- package/dist/src/components/mood/MoodIcon.js.map +1 -0
- package/dist/src/components/styles/fonts.d.ts +14 -1
- package/dist/src/components/styles/fonts.js +14 -0
- package/dist/src/components/styles/fonts.js.map +1 -0
- package/dist/src/locales/da/messages.json +82 -0
- package/dist/src/locales/de/messages.json +81 -0
- package/dist/src/locales/en/messages.json +84 -0
- package/dist/src/locales/es/messages.json +81 -0
- package/dist/src/locales/fr/messages.json +81 -0
- package/dist/src/locales/it/messages.json +81 -0
- package/dist/src/locales/translate.d.ts +18 -0
- package/dist/src/locales/translate.js +51 -0
- package/dist/src/locales/translate.js.map +1 -0
- package/dist/src/types/enum.d.ts +8 -9
- package/dist/src/types/enum.js +15 -15
- package/dist/src/types/enum.js.map +1 -0
- package/dist/src/types/types.js +1 -0
- package/dist/src/types/types.js.map +1 -0
- package/dist/src/utils/AttentionMessages.js +29 -24
- package/dist/src/utils/AttentionMessages.js.map +1 -0
- package/dist/src/utils/Constants.d.ts +3 -2
- package/dist/src/utils/Constants.js +2 -0
- package/dist/src/utils/Constants.js.map +1 -0
- package/dist/src/utils/RecommendationError.js +24 -24
- package/dist/src/utils/RecommendationError.js.map +1 -0
- package/dist/src/utils/RecommendationUtils.js +5 -2
- package/dist/src/utils/RecommendationUtils.js.map +1 -0
- package/dist/src/utils/Translations.js +5 -5
- package/dist/src/utils/Translations.js.map +1 -0
- package/dist/src/utils/Utils.d.ts +1 -1
- package/dist/src/utils/Utils.js +1 -0
- package/dist/src/utils/Utils.js.map +1 -0
- package/dist/src/utils/Validations.d.ts +1 -1
- package/dist/src/utils/Validations.js +3 -2
- package/dist/src/utils/Validations.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +95 -102
- package/dist/src/assets/activity/Cyclist.png +0 -0
- package/dist/src/assets/activity/Other.png +0 -0
- package/dist/src/assets/activity/Runner.png +0 -0
- package/dist/src/assets/activity/Swimmer.png +0 -0
- package/dist/src/assets/activity/Walk.png +0 -0
- package/dist/src/assets/mood/happy.png +0 -0
- package/dist/src/assets/mood/happy_active.png +0 -0
- package/dist/src/assets/mood/neutral.png +0 -0
- package/dist/src/assets/mood/neutral_active.png +0 -0
- package/dist/src/assets/mood/sad.png +0 -0
- package/dist/src/assets/mood/sad_active.png +0 -0
- package/dist/src/assets/mood/semi_happy.png +0 -0
- package/dist/src/assets/mood/semi_happy_active.png +0 -0
- package/dist/src/assets/mood/semi_sad.png +0 -0
- package/dist/src/assets/mood/semi_sad_active.png +0 -0
- package/dist/src/components/Header.d.ts +0 -10
- package/dist/src/components/Header.js +0 -76
- package/dist/src/components/Icon.d.ts +0 -20
- package/dist/src/components/Icon.js +0 -43
- package/dist/src/components/LimitationMessage.d.ts +0 -14
- package/dist/src/components/LimitationMessage.js +0 -29
- package/dist/src/components/TwoOptionModal.d.ts +0 -147
- package/dist/src/components/TwoOptionModal.js +0 -140
- package/dist/src/locale/da/messages.js +0 -1
- package/dist/src/locale/da/messages.po +0 -349
- package/dist/src/locale/de/messages.js +0 -1
- package/dist/src/locale/de/messages.po +0 -349
- package/dist/src/locale/en/messages.js +0 -1
- package/dist/src/locale/en/messages.po +0 -349
- package/dist/src/locale/es/messages.js +0 -1
- package/dist/src/locale/es/messages.po +0 -349
- package/dist/src/locale/fr/messages.js +0 -1
- package/dist/src/locale/fr/messages.po +0 -349
- package/dist/src/locale/i18nUtils.d.ts +0 -18
- package/dist/src/locale/i18nUtils.js +0 -39
- package/dist/src/locale/it/messages.js +0 -1
- package/dist/src/locale/it/messages.po +0 -349
package/dist/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,iCAAiC,CAAC;AAE1D,eAAe,oBAAoB,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { AppStateStatus } from "react-native";
|
|
3
3
|
import { BloodGlucoseUnit, BloodKetonesUnit, BolusCalculator, Languages, Logbook, UserSettings } from "@hedia/types";
|
|
4
|
-
import { RecommendationError } from "./utils/RecommendationError";
|
|
5
4
|
import { IActivityDisplayProps } from "./types/types";
|
|
5
|
+
import { RecommendationError } from "./utils/RecommendationError";
|
|
6
6
|
/** Represents both a suggestion by HDA and an actual amount of either insulin or carbohydrates. */
|
|
7
7
|
export interface IResult {
|
|
8
8
|
/** The suggested amount (of insulin in units or carbohydrates in grams) */
|
|
@@ -14,7 +14,7 @@ export interface IRecommendationProps {
|
|
|
14
14
|
/** The blood glucose measurement unit that the user prefers. */
|
|
15
15
|
bloodGlucoseUnit: BloodGlucoseUnit;
|
|
16
16
|
/** The user’s preferred language. */
|
|
17
|
-
language: Languages;
|
|
17
|
+
language: keyof typeof Languages;
|
|
18
18
|
/** The user’s preferred default reminder time in hours when they enter carbohydrates or an activity. */
|
|
19
19
|
userReminder: number;
|
|
20
20
|
/** The values needed to make an insulin recommendation calculation. */
|
|
@@ -29,6 +29,8 @@ export interface IRecommendationProps {
|
|
|
29
29
|
latestLogbookFrom6Hours: Logbook.Types.ILogbookEntry | null;
|
|
30
30
|
/** The properties of the entered activity that are not used for making the calculation itself, but will be used on the recommendation screen. */
|
|
31
31
|
activityDisplayProps: IActivityDisplayProps | null;
|
|
32
|
+
/** Should the exit modal be displayed or not */
|
|
33
|
+
showExitModal: boolean;
|
|
32
34
|
/**
|
|
33
35
|
* Callback function taking a single boolean argument and returning nothing.
|
|
34
36
|
* To be called when the user decides on a presented carbohydrate recommendation.
|
|
@@ -52,6 +54,12 @@ export interface IRecommendationProps {
|
|
|
52
54
|
* Should allow the user to enter when they injected insulin and how much.
|
|
53
55
|
*/
|
|
54
56
|
onRecentInsulinYes(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Callback function without arguments or return values.
|
|
59
|
+
* To be called if the user taps “No” when asked if they have taken insulin recently, making the recommendation visible.
|
|
60
|
+
* Or if they have recently taken insulin and the recommendation is visible.
|
|
61
|
+
*/
|
|
62
|
+
onRecommendationDisplayed(): void;
|
|
55
63
|
/**
|
|
56
64
|
* To be called when the “Transfer to Logbook” button is pressed.
|
|
57
65
|
* @param carbs The suggested and entered amount of carbohydrates.
|
|
@@ -66,18 +74,16 @@ export interface IRecommendationProps {
|
|
|
66
74
|
* To be called in case a serious issue with the validity of input data is detected.
|
|
67
75
|
* @param error The detected error.
|
|
68
76
|
*/
|
|
69
|
-
onError(error: RecommendationError): void;
|
|
70
|
-
/**
|
|
71
|
-
* Callback function taking a single argument of type boolean.
|
|
72
|
-
* To be called to hide the bottom navigation bar while displaying modal dialogs.
|
|
73
|
-
* @param toggle Showing (true) or hiding (false) the bottom navigation bar on the calculation flow screens.
|
|
74
|
-
*/
|
|
75
|
-
showBolusBar(toggle: boolean): void;
|
|
77
|
+
onError(error: RecommendationError | Error): void;
|
|
76
78
|
/**
|
|
77
79
|
* Callback function taking no arguments.
|
|
78
80
|
* To be called if the user chooses to restart the calculation.
|
|
79
81
|
*/
|
|
80
82
|
restartCalculation(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Callback function taking a single argument of type boolean.
|
|
85
|
+
*/
|
|
86
|
+
hideExitModal(): void;
|
|
81
87
|
}
|
|
82
88
|
interface IState {
|
|
83
89
|
/** The time in hours in hours until a reminder notification will be sent to the user. If 0 then no notification will be sent. */
|
|
@@ -110,8 +116,10 @@ interface IState {
|
|
|
110
116
|
* The exit modal prompts the user to consider saving the calculation to a logbook entry before closing the recommendation screen.
|
|
111
117
|
*/
|
|
112
118
|
showExitModal: boolean;
|
|
113
|
-
/**
|
|
114
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Keeps track of whether or not only the limitation page of the recommendation modal should be visible.
|
|
121
|
+
*/
|
|
122
|
+
onlyShowLimitationMessage: boolean;
|
|
115
123
|
/** Keeps track of whether or not a message about the recommendation being too old should be displayed. */
|
|
116
124
|
showTimeoutModal: boolean;
|
|
117
125
|
}
|
|
@@ -147,11 +155,6 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
147
155
|
* It'll allow us to later remove the subscription.
|
|
148
156
|
*/
|
|
149
157
|
private appStateSubscription?;
|
|
150
|
-
/**
|
|
151
|
-
* A reference to the eventSubscription that'll be returned by BackHandler.addEventListener().
|
|
152
|
-
* It'll allow us to later remove the subscription.
|
|
153
|
-
*/
|
|
154
|
-
private backHandlerSubscription?;
|
|
155
158
|
/**
|
|
156
159
|
* Steps:
|
|
157
160
|
* 1. Call the super() method with the props.
|
|
@@ -161,6 +164,7 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
161
164
|
* - Set the language by using the language prop as argument for calling changeLanguage()
|
|
162
165
|
* - Unpack recentBoluses from the calculatorParams prop.
|
|
163
166
|
* - Use the calculatorParams prop as argument for calling calculateRecommendation() and unpack all of the resulting values.
|
|
167
|
+
* - Call the onRecommendationDisplayed() callback prop if the recommendation is visible
|
|
164
168
|
* - Copy the carbRecommendation to the suggestedCarbs member variable.
|
|
165
169
|
* - Set the following state variables:
|
|
166
170
|
* - Set remeasureTime to the return value from calling the getBGLevelRemeasurementReminder() method.
|
|
@@ -172,7 +176,8 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
172
176
|
* - Set activeInsulin to the estimation returned from the calculation result.
|
|
173
177
|
* - Set enteredCarbs, enteredInsulin, selectedMood to null.
|
|
174
178
|
* - Set recommendationModal to be true if wasLimited is true or if carbRecommendation after being rounded is truthy or if the return value from calling the getBGLevelAttentionMessage() method is truthy.
|
|
175
|
-
* - Set
|
|
179
|
+
* - Set onlyShowLimitationMessage, showTimeoutModal to be false.
|
|
180
|
+
* - Set showExitModal with the value of the showExitModal prop.
|
|
176
181
|
* 3. Start a 15 minute timer assigned to the timer member variable using the setTimeout() function. When the timer expires, call the showTimeoutModal() method.
|
|
177
182
|
* @param props The data required to initialise the Recommendation Screen
|
|
178
183
|
*/
|
|
@@ -195,6 +200,14 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
195
200
|
* 2. Remove the listener for app state changes that was set by the componentDidMount() method.
|
|
196
201
|
*/
|
|
197
202
|
componentWillUnmount(): void;
|
|
203
|
+
/**
|
|
204
|
+
* Called immediately after updating occurs. This method is not called for the initial render.
|
|
205
|
+
* Use this as an opportunity to operate on the DOM when the component has been updated.
|
|
206
|
+
* Steps:
|
|
207
|
+
* 1. If the showExitModal prop is true and it was false before, call the onExit() method.
|
|
208
|
+
* @param showExitModal The previous showExitModal props of the component.
|
|
209
|
+
*/
|
|
210
|
+
componentDidUpdate({ showExitModal }: IRecommendationProps): void;
|
|
198
211
|
/**
|
|
199
212
|
* Steps:
|
|
200
213
|
* 1. Evaluate a boolean called isOlderThan15Minutes to indicate whether the recommendationDate member variable represents a time more than 15 minutes ago.
|
|
@@ -204,7 +217,7 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
204
217
|
handleAppStateChange: (nextAppState: AppStateStatus) => void;
|
|
205
218
|
/**
|
|
206
219
|
* Steps:
|
|
207
|
-
* 1. Set the showTimeoutModal state variable to be true.
|
|
220
|
+
* 1. Set the showTimeoutModal state variable to be true.
|
|
208
221
|
* */
|
|
209
222
|
showTimeoutModal: () => void;
|
|
210
223
|
/**
|
|
@@ -226,19 +239,11 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
226
239
|
*
|
|
227
240
|
* Steps:
|
|
228
241
|
* 1. If the insulin recommendation is being displayed (the isRecommendationDisplayed state variable is true):
|
|
229
|
-
* - Set the showExitModal state variable to true.
|
|
242
|
+
* - Set the showExitModal state variable to true.
|
|
230
243
|
* 2. Else:
|
|
231
244
|
* - Call the exitCallback prop callback function.
|
|
232
245
|
*/
|
|
233
246
|
onExit: () => void;
|
|
234
|
-
/**
|
|
235
|
-
* Callback to be executed by the back handler listener.
|
|
236
|
-
*
|
|
237
|
-
* Steps:
|
|
238
|
-
* 1. Call the onExist method
|
|
239
|
-
* 2. Return true so that the default behaviour is overwritten.
|
|
240
|
-
*/
|
|
241
|
-
onBackHandlerPress: () => boolean;
|
|
242
247
|
/**
|
|
243
248
|
* Hide the modal that shows attention messages.
|
|
244
249
|
*
|
|
@@ -246,19 +251,12 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
246
251
|
* 1. Set the recommendationModal state variable to false.
|
|
247
252
|
*/
|
|
248
253
|
hideAttentionModal: () => void;
|
|
249
|
-
/**
|
|
250
|
-
* Hide the modal that shows attention messages.
|
|
251
|
-
*
|
|
252
|
-
* Steps:
|
|
253
|
-
* 1. Set the showLimitationMessage state variable to false.
|
|
254
|
-
*/
|
|
255
|
-
hideLimitationMessage: () => void;
|
|
256
254
|
/**
|
|
257
255
|
* Hide the exit modal. To be used when the user closes the modal directly or in some way exits the recommendation screen.
|
|
258
256
|
*
|
|
259
257
|
* Steps:
|
|
260
258
|
* 1. Set the showExitModal state variable to false.
|
|
261
|
-
*
|
|
259
|
+
* 2. Call the hideExitModal prop callback function.
|
|
262
260
|
*/
|
|
263
261
|
hideExitModal: () => void;
|
|
264
262
|
/**
|
|
@@ -266,7 +264,6 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
266
264
|
*
|
|
267
265
|
* Steps:
|
|
268
266
|
* 1. Set the showTimeoutModal state variable to false.
|
|
269
|
-
* When the state has been updated, call the showBolusBar prop callback function with the inverse value of the showTimeoutModal state variable as argument.
|
|
270
267
|
*/
|
|
271
268
|
hideTimeoutModal: () => void;
|
|
272
269
|
/**
|
|
@@ -284,7 +281,8 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
|
|
|
284
281
|
*
|
|
285
282
|
* Steps:
|
|
286
283
|
* 1. Set the isRecommendationDisplayed state variable to be true.
|
|
287
|
-
* 2.
|
|
284
|
+
* 2. Call the onRecommendationDisplayed prop callback function.
|
|
285
|
+
* 3. As a callback to the setState() method, define a new anonymous function that calls setTimeout() with a duration of 0 milliseconds.
|
|
288
286
|
* When the time expires, call the scrollToEnd() method of the scrollView member, with the animated argument set to true.
|
|
289
287
|
* This ensures that the scroll event happens after all other events that get queued to happen at the same time,
|
|
290
288
|
* so all relevant elements are visible on the screen and the scroll happens reliably.
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { AppState,
|
|
2
|
+
import { AppState, LogBox, StyleSheet, View } from "react-native";
|
|
3
3
|
import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import * as Calculator from "@hedia/recommendation-calculator";
|
|
5
|
+
import { Milliseconds, } from "@hedia/types";
|
|
6
|
+
import Activity from "./components/activity/Activity";
|
|
7
|
+
import ExitModal from "./components/ExitModal";
|
|
8
|
+
import InfoBars from "./components/InfoBars";
|
|
9
|
+
import Emotion from "./components/mood/Emotion";
|
|
6
10
|
import RecentInsulin from "./components/RecentInsulin";
|
|
11
|
+
import RecommendationModal from "./components/RecommendationModal";
|
|
7
12
|
import RecommendedCarbs from "./components/RecommendedCarbs";
|
|
8
13
|
import RecommendedInsulin from "./components/RecommendedInsulin";
|
|
9
14
|
import Remeasure from "./components/Remeasure";
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import Emotion from "./components/mood/Emotion";
|
|
15
|
+
import { FONTS } from "./components/styles/fonts";
|
|
16
|
+
import Text from "./components/Text";
|
|
17
|
+
import TimeoutModal from "./components/TimeoutModal";
|
|
14
18
|
import TransferToLogbook from "./components/TransferToLogbook";
|
|
15
|
-
import {
|
|
16
|
-
import { t } from "@lingui/macro";
|
|
17
|
-
import Activity from "./components/activity/Activity";
|
|
18
|
-
import LimitationMessage from "./components/LimitationMessage";
|
|
19
|
-
import RecommendationModal from "./components/RecommendationModal";
|
|
20
|
-
import TwoOptionModal, { modalStyle } from "./components/TwoOptionModal";
|
|
21
|
-
import { changeLanguage, i18n } from "./locale/i18nUtils";
|
|
19
|
+
import { changeLocale, translate } from "./locales/translate";
|
|
22
20
|
import { Testing } from "./types/enum";
|
|
23
21
|
import { Messages } from "./utils/AttentionMessages";
|
|
22
|
+
import { colors } from "./utils/Constants";
|
|
24
23
|
import { getAttentionMessage, getBGLevel, getLimitationMessage, getReminder } from "./utils/RecommendationUtils";
|
|
25
24
|
import { Utils } from "./utils/Utils";
|
|
26
25
|
import { validateParams } from "./utils/Validations";
|
|
@@ -60,11 +59,6 @@ export default class RecommendationScreen extends React.Component {
|
|
|
60
59
|
* It'll allow us to later remove the subscription.
|
|
61
60
|
*/
|
|
62
61
|
appStateSubscription;
|
|
63
|
-
/**
|
|
64
|
-
* A reference to the eventSubscription that'll be returned by BackHandler.addEventListener().
|
|
65
|
-
* It'll allow us to later remove the subscription.
|
|
66
|
-
*/
|
|
67
|
-
backHandlerSubscription;
|
|
68
62
|
/**
|
|
69
63
|
* Steps:
|
|
70
64
|
* 1. Call the super() method with the props.
|
|
@@ -74,6 +68,7 @@ export default class RecommendationScreen extends React.Component {
|
|
|
74
68
|
* - Set the language by using the language prop as argument for calling changeLanguage()
|
|
75
69
|
* - Unpack recentBoluses from the calculatorParams prop.
|
|
76
70
|
* - Use the calculatorParams prop as argument for calling calculateRecommendation() and unpack all of the resulting values.
|
|
71
|
+
* - Call the onRecommendationDisplayed() callback prop if the recommendation is visible
|
|
77
72
|
* - Copy the carbRecommendation to the suggestedCarbs member variable.
|
|
78
73
|
* - Set the following state variables:
|
|
79
74
|
* - Set remeasureTime to the return value from calling the getBGLevelRemeasurementReminder() method.
|
|
@@ -85,7 +80,8 @@ export default class RecommendationScreen extends React.Component {
|
|
|
85
80
|
* - Set activeInsulin to the estimation returned from the calculation result.
|
|
86
81
|
* - Set enteredCarbs, enteredInsulin, selectedMood to null.
|
|
87
82
|
* - Set recommendationModal to be true if wasLimited is true or if carbRecommendation after being rounded is truthy or if the return value from calling the getBGLevelAttentionMessage() method is truthy.
|
|
88
|
-
* - Set
|
|
83
|
+
* - Set onlyShowLimitationMessage, showTimeoutModal to be false.
|
|
84
|
+
* - Set showExitModal with the value of the showExitModal prop.
|
|
89
85
|
* 3. Start a 15 minute timer assigned to the timer member variable using the setTimeout() function. When the timer expires, call the showTimeoutModal() method.
|
|
90
86
|
* @param props The data required to initialise the Recommendation Screen
|
|
91
87
|
*/
|
|
@@ -93,14 +89,18 @@ export default class RecommendationScreen extends React.Component {
|
|
|
93
89
|
super(props);
|
|
94
90
|
try {
|
|
95
91
|
validateParams(props);
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
changeLocale(props.language);
|
|
93
|
+
this.recommendationDate = new Date();
|
|
98
94
|
const { recentBoluses } = props.calculatorParams;
|
|
99
95
|
const { bolus, carbRecommendation, activityReduction, wasLimited, activeInsulin } = Calculator.calculateRecommendation(props.calculatorParams);
|
|
100
96
|
this.suggestedCarbs = carbRecommendation;
|
|
97
|
+
const isRecommendationDisplayed = recentBoluses?.length !== 0;
|
|
98
|
+
if (isRecommendationDisplayed) {
|
|
99
|
+
this.props.onRecommendationDisplayed();
|
|
100
|
+
}
|
|
101
101
|
this.state = {
|
|
102
102
|
remeasureTime: this.getBGLevelRemeasurementReminder(),
|
|
103
|
-
isRecommendationDisplayed
|
|
103
|
+
isRecommendationDisplayed,
|
|
104
104
|
insulinRecommendation: Utils.roundValue(bolus, props.injectionMethod),
|
|
105
105
|
wasLimited,
|
|
106
106
|
activityReduction,
|
|
@@ -110,8 +110,8 @@ export default class RecommendationScreen extends React.Component {
|
|
|
110
110
|
enteredInsulin: null,
|
|
111
111
|
selectedMood: null,
|
|
112
112
|
recommendationModal: wasLimited || !!Math.round(carbRecommendation) || !!this.getBGLevelAttentionMessage(),
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
onlyShowLimitationMessage: false,
|
|
114
|
+
showExitModal: props.showExitModal,
|
|
115
115
|
showTimeoutModal: false,
|
|
116
116
|
};
|
|
117
117
|
this.timer = setTimeout(this.showTimeoutModal, Milliseconds.Minute * 15);
|
|
@@ -130,7 +130,6 @@ export default class RecommendationScreen extends React.Component {
|
|
|
130
130
|
componentDidMount() {
|
|
131
131
|
if (!this.hasError) {
|
|
132
132
|
this.appStateSubscription = AppState.addEventListener(`change`, this.handleAppStateChange);
|
|
133
|
-
this.backHandlerSubscription = BackHandler.addEventListener(`hardwareBackPress`, this.onBackHandlerPress);
|
|
134
133
|
}
|
|
135
134
|
}
|
|
136
135
|
/**
|
|
@@ -148,7 +147,18 @@ export default class RecommendationScreen extends React.Component {
|
|
|
148
147
|
clearTimeout(this.timer);
|
|
149
148
|
}
|
|
150
149
|
this.appStateSubscription?.remove();
|
|
151
|
-
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Called immediately after updating occurs. This method is not called for the initial render.
|
|
153
|
+
* Use this as an opportunity to operate on the DOM when the component has been updated.
|
|
154
|
+
* Steps:
|
|
155
|
+
* 1. If the showExitModal prop is true and it was false before, call the onExit() method.
|
|
156
|
+
* @param showExitModal The previous showExitModal props of the component.
|
|
157
|
+
*/
|
|
158
|
+
componentDidUpdate({ showExitModal }) {
|
|
159
|
+
if (this.props.showExitModal && showExitModal !== this.props.showExitModal) {
|
|
160
|
+
this.onExit();
|
|
161
|
+
}
|
|
152
162
|
}
|
|
153
163
|
/**
|
|
154
164
|
* Steps:
|
|
@@ -158,17 +168,17 @@ export default class RecommendationScreen extends React.Component {
|
|
|
158
168
|
*/
|
|
159
169
|
handleAppStateChange = (nextAppState) => {
|
|
160
170
|
const time = this.recommendationDate.getTime();
|
|
161
|
-
const isOlderThan15Minutes =
|
|
171
|
+
const isOlderThan15Minutes = new Date().getTime() - time > Milliseconds.Minute * 15;
|
|
162
172
|
if (nextAppState === `active` && isOlderThan15Minutes) {
|
|
163
173
|
this.showTimeoutModal();
|
|
164
174
|
}
|
|
165
175
|
};
|
|
166
176
|
/**
|
|
167
177
|
* Steps:
|
|
168
|
-
* 1. Set the showTimeoutModal state variable to be true.
|
|
178
|
+
* 1. Set the showTimeoutModal state variable to be true.
|
|
169
179
|
* */
|
|
170
180
|
showTimeoutModal = () => {
|
|
171
|
-
this.setState({ showTimeoutModal: true }
|
|
181
|
+
this.setState({ showTimeoutModal: true });
|
|
172
182
|
};
|
|
173
183
|
/**
|
|
174
184
|
* Make a new insulin calculation and set the result to be displayed to the user.
|
|
@@ -190,7 +200,7 @@ export default class RecommendationScreen extends React.Component {
|
|
|
190
200
|
enteredInsulin: null,
|
|
191
201
|
wasLimited,
|
|
192
202
|
activityReduction,
|
|
193
|
-
|
|
203
|
+
onlyShowLimitationMessage: wasLimited,
|
|
194
204
|
});
|
|
195
205
|
};
|
|
196
206
|
/**
|
|
@@ -198,29 +208,18 @@ export default class RecommendationScreen extends React.Component {
|
|
|
198
208
|
*
|
|
199
209
|
* Steps:
|
|
200
210
|
* 1. If the insulin recommendation is being displayed (the isRecommendationDisplayed state variable is true):
|
|
201
|
-
* - Set the showExitModal state variable to true.
|
|
211
|
+
* - Set the showExitModal state variable to true.
|
|
202
212
|
* 2. Else:
|
|
203
213
|
* - Call the exitCallback prop callback function.
|
|
204
214
|
*/
|
|
205
215
|
onExit = () => {
|
|
206
216
|
if (this.state.isRecommendationDisplayed) {
|
|
207
|
-
this.setState({ showExitModal: true }
|
|
217
|
+
this.setState({ showExitModal: true });
|
|
208
218
|
}
|
|
209
219
|
else {
|
|
210
220
|
this.props.exitCallback();
|
|
211
221
|
}
|
|
212
222
|
};
|
|
213
|
-
/**
|
|
214
|
-
* Callback to be executed by the back handler listener.
|
|
215
|
-
*
|
|
216
|
-
* Steps:
|
|
217
|
-
* 1. Call the onExist method
|
|
218
|
-
* 2. Return true so that the default behaviour is overwritten.
|
|
219
|
-
*/
|
|
220
|
-
onBackHandlerPress = () => {
|
|
221
|
-
this.onExit();
|
|
222
|
-
return true;
|
|
223
|
-
};
|
|
224
223
|
/**
|
|
225
224
|
* Hide the modal that shows attention messages.
|
|
226
225
|
*
|
|
@@ -228,36 +227,26 @@ export default class RecommendationScreen extends React.Component {
|
|
|
228
227
|
* 1. Set the recommendationModal state variable to false.
|
|
229
228
|
*/
|
|
230
229
|
hideAttentionModal = () => {
|
|
231
|
-
this.setState({ recommendationModal: false });
|
|
232
|
-
};
|
|
233
|
-
/**
|
|
234
|
-
* Hide the modal that shows attention messages.
|
|
235
|
-
*
|
|
236
|
-
* Steps:
|
|
237
|
-
* 1. Set the showLimitationMessage state variable to false.
|
|
238
|
-
*/
|
|
239
|
-
hideLimitationMessage = () => {
|
|
240
|
-
this.setState({ showLimitationMessage: false });
|
|
230
|
+
this.setState({ recommendationModal: false, onlyShowLimitationMessage: false });
|
|
241
231
|
};
|
|
242
232
|
/**
|
|
243
233
|
* Hide the exit modal. To be used when the user closes the modal directly or in some way exits the recommendation screen.
|
|
244
234
|
*
|
|
245
235
|
* Steps:
|
|
246
236
|
* 1. Set the showExitModal state variable to false.
|
|
247
|
-
*
|
|
237
|
+
* 2. Call the hideExitModal prop callback function.
|
|
248
238
|
*/
|
|
249
239
|
hideExitModal = () => {
|
|
250
|
-
this.setState({ showExitModal: false },
|
|
240
|
+
this.setState({ showExitModal: false }, this.props.hideExitModal);
|
|
251
241
|
};
|
|
252
242
|
/**
|
|
253
243
|
* Hide the modal that warns the user that their recommendation is old.
|
|
254
244
|
*
|
|
255
245
|
* Steps:
|
|
256
246
|
* 1. Set the showTimeoutModal state variable to false.
|
|
257
|
-
* When the state has been updated, call the showBolusBar prop callback function with the inverse value of the showTimeoutModal state variable as argument.
|
|
258
247
|
*/
|
|
259
248
|
hideTimeoutModal = () => {
|
|
260
|
-
this.setState({ showTimeoutModal: false }
|
|
249
|
+
this.setState({ showTimeoutModal: false });
|
|
261
250
|
};
|
|
262
251
|
/**
|
|
263
252
|
* Used as a callback function for the Remeasure component to update the state when the remeasure time slider’s value changes.
|
|
@@ -276,13 +265,15 @@ export default class RecommendationScreen extends React.Component {
|
|
|
276
265
|
*
|
|
277
266
|
* Steps:
|
|
278
267
|
* 1. Set the isRecommendationDisplayed state variable to be true.
|
|
279
|
-
* 2.
|
|
268
|
+
* 2. Call the onRecommendationDisplayed prop callback function.
|
|
269
|
+
* 3. As a callback to the setState() method, define a new anonymous function that calls setTimeout() with a duration of 0 milliseconds.
|
|
280
270
|
* When the time expires, call the scrollToEnd() method of the scrollView member, with the animated argument set to true.
|
|
281
271
|
* This ensures that the scroll event happens after all other events that get queued to happen at the same time,
|
|
282
272
|
* so all relevant elements are visible on the screen and the scroll happens reliably.
|
|
283
273
|
*/
|
|
284
274
|
handleNoRecentInsulin = () => {
|
|
285
275
|
this.setState({ isRecommendationDisplayed: true }, () => {
|
|
276
|
+
this.props.onRecommendationDisplayed();
|
|
286
277
|
setTimeout(() => {
|
|
287
278
|
this.scrollView?.scrollToEnd(true);
|
|
288
279
|
}, 0);
|
|
@@ -451,69 +442,66 @@ export default class RecommendationScreen extends React.Component {
|
|
|
451
442
|
/** Render a JSX element for displaying the insulin recommendation screen. */
|
|
452
443
|
render() {
|
|
453
444
|
if (this.hasError) {
|
|
454
|
-
return <View style={
|
|
445
|
+
return <View style={styles.container}/>;
|
|
455
446
|
}
|
|
456
447
|
const { activeInsulin, recommendationModal, carbRecommendation: carbRecommendationProp, enteredCarbs, enteredInsulin, insulinRecommendation, activityReduction, isRecommendationDisplayed, } = this.state;
|
|
457
448
|
const { BloodGlucose: BGValueTestID, BloodKetone: BKValueTestID, ActiveInsulin: ActiveInsulinValueTestID, } = InfoBarTestIds.Value;
|
|
458
449
|
const { ActiveInsulin: ActiveInsulinUnitTestID, BloodGlucose: BGUnitTestID, BloodKetone: BKUnitTestID, } = InfoBarTestIds.Unit;
|
|
459
450
|
const carbRecommendation = carbRecommendationProp !== null ? Math.round(carbRecommendationProp) : null;
|
|
460
451
|
const recommendedCarbs = enteredCarbs ?? carbRecommendation;
|
|
452
|
+
const foodBorderColor = recommendedCarbs !== null && recommendedCarbs > 0 ? colors.teal : colors.dustyDarkBlue;
|
|
461
453
|
const { calculatorParams, bloodGlucoseUnit, currentBKL, bloodKetoneUnit } = this.props;
|
|
462
454
|
const { currentBGL, carbohydrates: providedCarbs } = calculatorParams;
|
|
463
455
|
const displayedBGL = currentBGL ? Utils.displayedBGLValue(currentBGL, bloodGlucoseUnit) : null;
|
|
464
456
|
const displayedBKL = currentBKL !== null && bloodKetoneUnit ? Utils.displayedBKLValue(currentBKL, bloodKetoneUnit) : null;
|
|
465
|
-
return (
|
|
466
|
-
<KeyboardAwareScrollView testID={RecommendationScreenTestIds.RecommendationScrollView} enableResetScrollToCoords={false} style={
|
|
457
|
+
return (<>
|
|
458
|
+
<KeyboardAwareScrollView testID={RecommendationScreenTestIds.RecommendationScrollView} enableResetScrollToCoords={false} style={styles.container} ref={(view) => {
|
|
467
459
|
if (view !== null) {
|
|
468
460
|
this.scrollView = view;
|
|
469
461
|
}
|
|
470
462
|
}}>
|
|
471
|
-
<
|
|
472
|
-
<InfoBars label={
|
|
473
|
-
<InfoBars label={
|
|
474
|
-
<InfoBars label={
|
|
475
|
-
<View style={
|
|
476
|
-
<
|
|
477
|
-
<View style={[
|
|
478
|
-
containerStyles.calcBorder,
|
|
479
|
-
{
|
|
480
|
-
borderColor: recommendedCarbs ? colors.teal : colors.mistBlue,
|
|
481
|
-
},
|
|
482
|
-
]}>
|
|
483
|
-
<RecommendedCarbs enteredCarbs={`${providedCarbs}`} changedRecommendedCarbs={this.updateCarbRecommendation} recommendedCarbs={`${recommendedCarbs}`} removeRecommendedCarbs={this.removeCarbRecommendation}/>
|
|
484
|
-
</View>
|
|
485
|
-
</View>
|
|
463
|
+
<Text style={styles.header}>{translate(`Insulin recommendation`)}</Text>
|
|
464
|
+
<InfoBars label={translate(`Active Insulin`)} value={activeInsulin ? `${activeInsulin.toFixed(1)}` : null} unit={translate(`units`)} showNullAsDash={false} testID={{ unitID: ActiveInsulinUnitTestID, valueID: ActiveInsulinValueTestID }}/>
|
|
465
|
+
<InfoBars label={translate(`Blood Glucose Level`)} value={displayedBGL} unit={this.props.bloodGlucoseUnit} showNullAsDash={true} testID={{ unitID: BGUnitTestID, valueID: BGValueTestID }}/>
|
|
466
|
+
<InfoBars label={translate(`Blood Ketone Level`)} value={displayedBKL} unit={this.props.bloodKetoneUnit} showNullAsDash={true} testID={{ unitID: BKUnitTestID, valueID: BKValueTestID }}/>
|
|
467
|
+
<View style={[styles.carbsBorder, { borderColor: foodBorderColor }]}>
|
|
468
|
+
<RecommendedCarbs enteredCarbs={`${providedCarbs}`} changedRecommendedCarbs={this.updateCarbRecommendation} recommendedCarbs={`${recommendedCarbs}`} removeRecommendedCarbs={this.removeCarbRecommendation}/>
|
|
486
469
|
</View>
|
|
487
|
-
{this.props.calculatorParams.activity && this.props.activityDisplayProps
|
|
470
|
+
{this.props.calculatorParams.activity && this.props.activityDisplayProps && (<Activity activity={this.props.calculatorParams.activity} activityType={this.props.activityDisplayProps.activityType} activityTitle={this.props.activityDisplayProps.activityTitle} activityReduction={this.state.activityReduction}/>)}
|
|
488
471
|
<Remeasure onSliderChange={this.updateRemeasureTime} remeasureTime={this.state.remeasureTime}/>
|
|
489
472
|
{!this.state.isRecommendationDisplayed ? (<RecentInsulin onRecentInsulinYes={this.props.onRecentInsulinYes} onRecentInsulinNo={this.handleNoRecentInsulin}/>) : (<RecommendedInsulin injectionMethod={this.props.injectionMethod} insulinRecommendation={insulinRecommendation} enteredInsulin={enteredInsulin} activityReduction={activityReduction} updateRecommendedInsulin={this.updateInsulinRecommendation}/>)}
|
|
490
473
|
<Emotion moodSelected={this.handleMoodSelected} currentMood={this.state.selectedMood}/>
|
|
491
474
|
<TransferToLogbook visible={isRecommendationDisplayed} transfer={this.handleTransfer}/>
|
|
492
|
-
<RecommendationModal isVisible={recommendationModal} suggestedCarbohydrates={carbRecommendationProp} attentionMessage={this.getBGLevelAttentionMessage()} limitationMessage={this.getLimitationAttentionMessage()} onClickOkButton={this.hideAttentionModal} onAcceptCarbohydrates={this.acceptCarbRecommendation} onDeclineCarbohydrates={this.declineCarbRecommendation}/>
|
|
475
|
+
<RecommendationModal isVisible={recommendationModal || this.state.onlyShowLimitationMessage} onlyShowLimitationMessage={this.state.onlyShowLimitationMessage} suggestedCarbohydrates={carbRecommendationProp} attentionMessage={this.getBGLevelAttentionMessage()} limitationMessage={this.getLimitationAttentionMessage()} onClickOkButton={this.hideAttentionModal} onAcceptCarbohydrates={this.acceptCarbRecommendation} onDeclineCarbohydrates={this.declineCarbRecommendation}/>
|
|
493
476
|
</KeyboardAwareScrollView>
|
|
494
|
-
|
|
495
|
-
{this.state.
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
</I18nProvider>);
|
|
477
|
+
|
|
478
|
+
<ExitModal isVisible={this.state.showExitModal} title={translate(`Save data before closing?`)} message={translate(`Your saved data will be used for future calculations.`)} textFirstOption={translate(`Save to logbook`)} textSecondOption={translate(`Close calculation`)} firstOption={this.handleTransfer} secondOption={this.closeCalculation} onClose={this.hideExitModal}/>
|
|
479
|
+
|
|
480
|
+
{this.state.isRecommendationDisplayed ? (<TimeoutModal isVisible={this.state.showTimeoutModal} title={Messages.TimeoutPrompTitle()} message={Messages.TimeoutRecommendationVisible(this.recommendationDate)} textFirstOption={translate(`Yes, save to logbook`)} textSecondOption={translate(`No, return to dashboard`)} firstOption={this.handleTransfer} secondOption={this.closeCalculation}/>) : (<TimeoutModal isVisible={this.state.showTimeoutModal} title={Messages.TimeoutPrompTitle()} message={Messages.TimeoutRecommendationNotVisible()} textFirstOption={translate(`Start new calculation`)} textSecondOption={translate(`Return to dashboard`)} firstOption={this.restartCalculation} secondOption={this.closeCalculation}/>)}
|
|
481
|
+
</>);
|
|
500
482
|
}
|
|
501
483
|
}
|
|
502
|
-
const
|
|
484
|
+
const styles = StyleSheet.create({
|
|
503
485
|
container: {
|
|
504
486
|
flex: 1,
|
|
487
|
+
paddingHorizontal: 18,
|
|
505
488
|
backgroundColor: colors.darkBlue,
|
|
506
489
|
},
|
|
507
|
-
|
|
508
|
-
|
|
490
|
+
limitationModalContainer: {
|
|
491
|
+
...StyleSheet.absoluteFillObject,
|
|
492
|
+
justifyContent: `center`,
|
|
493
|
+
backgroundColor: colors.transparentBlack,
|
|
509
494
|
},
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
495
|
+
carbsBorder: {
|
|
496
|
+
borderWidth: 1,
|
|
497
|
+
borderRadius: 5,
|
|
498
|
+
padding: 16,
|
|
514
499
|
},
|
|
515
|
-
|
|
516
|
-
...
|
|
517
|
-
|
|
500
|
+
header: {
|
|
501
|
+
...FONTS.Poppins.medium_Base,
|
|
502
|
+
color: colors.dustyBlue,
|
|
503
|
+
marginBottom: 22,
|
|
504
|
+
textAlign: `center`,
|
|
518
505
|
},
|
|
519
506
|
});
|
|
507
|
+
//# sourceMappingURL=RecommendationScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecommendationScreen.js","sourceRoot":"","sources":["../../src/RecommendationScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Path, Svg } from "react-native-svg";
|
|
3
|
+
const Close = (props) => (<Svg viewBox="0 0 28 28" {...props}>
|
|
4
|
+
<Path d="M4.4753 23.4372C5.10827 24.0746 6.20854 24.0519 6.82281 23.4477L14.0546 16.2888L21.2957 23.4425C21.9208 24.0599 22.9955 24.072 23.6285 23.4346C24.2858 22.7973 24.2736 21.7355 23.6364 21.1181L16.4101 13.9618L23.6364 6.8228C24.2736 6.20277 24.2858 5.129 23.6285 4.50632C22.9955 3.86898 21.9208 3.88101 21.2957 4.49576L14.0546 11.6468L6.82281 4.49312C6.20854 3.88628 5.10827 3.86634 4.4753 4.50104C3.83282 5.12636 3.85301 6.21333 4.46728 6.82016L11.7139 13.9618L4.46728 21.1207C3.85301 21.7275 3.83282 22.7999 4.4753 23.4372Z" fill={props.color}/>
|
|
5
|
+
</Svg>);
|
|
6
|
+
export default Close;
|
|
7
|
+
//# sourceMappingURL=Close.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Close.js","sourceRoot":"","sources":["../../../../src/assets/IconsSVG/Close.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAY,MAAM,kBAAkB,CAAC;AAEvD,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CAClC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAClC;EAAA,CAAC,IAAI,CACJ,CAAC,CAAC,4gBAA4gB,CAC9gB,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAEpB;CAAA,EAAE,GAAG,CAAC,CACN,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Path, Svg } from "react-native-svg";
|
|
3
|
+
import { colors } from "../../utils/Constants";
|
|
4
|
+
const CloseOutlined = (props) => (<Svg viewBox="0 0 16 16" {...props}>
|
|
5
|
+
<Path fillRule="evenodd" clipRule="evenodd" d="M8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0ZM8.00003 14.9091C4.18425 14.9091 1.09094 11.8158 1.09094 8.00005C1.09094 4.18427 4.18425 1.09096 8.00003 1.09096C11.8158 1.09096 14.9091 4.18427 14.9091 8.00005C14.9091 9.83246 14.1812 11.5898 12.8855 12.8855C11.5898 14.1812 9.83244 14.9091 8.00003 14.9091Z" fill={colors.teal}/>
|
|
6
|
+
<Path fillRule="evenodd" clipRule="evenodd" d="M10.8261 4.99334C10.6131 4.78065 10.2681 4.78065 10.0552 4.99334L7.98608 7.14607L5.73517 4.96425C5.59618 4.82218 5.39091 4.76696 5.1994 4.82011C5.00789 4.87326 4.86045 5.02638 4.81456 5.21976C4.76867 5.41314 4.83159 5.61618 4.97881 5.74971L7.21517 7.90243L4.97881 10.0552C4.83159 10.1887 4.76867 10.3917 4.81456 10.5851C4.86045 10.7785 5.00789 10.9316 5.1994 10.9848C5.39091 11.0379 5.59618 10.9827 5.73517 10.8406L7.98608 8.6588L10.0552 10.8115C10.1887 10.9587 10.3917 11.0217 10.5851 10.9758C10.7785 10.9299 10.9316 10.7824 10.9848 10.5909C11.0379 10.3994 10.9827 10.1942 10.8406 10.0552L8.75699 7.87334L10.8406 5.69153C11.0049 5.48579 10.9988 5.19206 10.8261 4.99334Z" fill={colors.teal}/>
|
|
7
|
+
</Svg>);
|
|
8
|
+
export default CloseOutlined;
|
|
9
|
+
//# sourceMappingURL=CloseOutlined.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CloseOutlined.js","sourceRoot":"","sources":["../../../../src/assets/IconsSVG/CloseOutlined.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAY,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,aAAa,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CAC1C,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAClC;EAAA,CAAC,IAAI,CACJ,QAAQ,CAAC,SAAS,CAClB,QAAQ,CAAC,SAAS,CAClB,CAAC,CAAC,8WAA8W,CAChX,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAEnB;EAAA,CAAC,IAAI,CACJ,QAAQ,CAAC,SAAS,CAClB,QAAQ,CAAC,SAAS,CAClB,CAAC,CAAC,gqBAAgqB,CAClqB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAEpB;CAAA,EAAE,GAAG,CAAC,CACN,CAAC;AAEF,eAAe,aAAa,CAAC"}
|