@hedia/recommendation-screen 2.1.73 → 2.1.74-alpha.0
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/lib/commonjs/RecommendationScreen.js +768 -0
- package/lib/commonjs/RecommendationScreen.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/Close.js +20 -0
- package/lib/commonjs/assets/IconsSVG/Close.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/CloseOutlined.js +28 -0
- package/lib/commonjs/assets/IconsSVG/CloseOutlined.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/Edit.js +23 -0
- package/lib/commonjs/assets/IconsSVG/Edit.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/activity/Cycling.js +43 -0
- package/lib/commonjs/assets/IconsSVG/activity/Cycling.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/activity/Running.js +33 -0
- package/lib/commonjs/assets/IconsSVG/activity/Running.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/activity/Stretching.js +33 -0
- package/lib/commonjs/assets/IconsSVG/activity/Stretching.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/activity/Swimming.js +48 -0
- package/lib/commonjs/assets/IconsSVG/activity/Swimming.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/activity/Walking.js +38 -0
- package/lib/commonjs/assets/IconsSVG/activity/Walking.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/mood/Happy.js +34 -0
- package/lib/commonjs/assets/IconsSVG/mood/Happy.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/mood/Neutral.js +34 -0
- package/lib/commonjs/assets/IconsSVG/mood/Neutral.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/mood/Sad.js +34 -0
- package/lib/commonjs/assets/IconsSVG/mood/Sad.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/mood/SemiHappy.js +34 -0
- package/lib/commonjs/assets/IconsSVG/mood/SemiHappy.js.map +1 -0
- package/lib/commonjs/assets/IconsSVG/mood/SemiSad.js +34 -0
- package/lib/commonjs/assets/IconsSVG/mood/SemiSad.js.map +1 -0
- package/lib/commonjs/components/ExitModal.js +124 -0
- package/lib/commonjs/components/ExitModal.js.map +1 -0
- package/lib/commonjs/components/InfoBars.js +123 -0
- package/lib/commonjs/components/InfoBars.js.map +1 -0
- package/lib/commonjs/components/InvisibleNumberInput.js +150 -0
- package/lib/commonjs/components/InvisibleNumberInput.js.map +1 -0
- package/lib/commonjs/components/LineSeparator.js +27 -0
- package/lib/commonjs/components/LineSeparator.js.map +1 -0
- package/lib/commonjs/components/RecentInsulin.js +105 -0
- package/lib/commonjs/components/RecentInsulin.js.map +1 -0
- package/lib/commonjs/components/RecommendationModal.js +302 -0
- package/lib/commonjs/components/RecommendationModal.js.map +1 -0
- package/lib/commonjs/components/RecommendedCarbs.js +289 -0
- package/lib/commonjs/components/RecommendedCarbs.js.map +1 -0
- package/lib/commonjs/components/RecommendedInsulin.js +208 -0
- package/lib/commonjs/components/RecommendedInsulin.js.map +1 -0
- package/lib/commonjs/components/Remeasure.js +131 -0
- package/lib/commonjs/components/Remeasure.js.map +1 -0
- package/lib/commonjs/components/Text.js +25 -0
- package/lib/commonjs/components/Text.js.map +1 -0
- package/lib/commonjs/components/TimeoutModal.js +113 -0
- package/lib/commonjs/components/TimeoutModal.js.map +1 -0
- package/lib/commonjs/components/TransferToLogbook.js +83 -0
- package/lib/commonjs/components/TransferToLogbook.js.map +1 -0
- package/lib/commonjs/components/activity/Activity.js +112 -0
- package/lib/commonjs/components/activity/Activity.js.map +1 -0
- package/lib/commonjs/components/activity/ActivityIcon.js +86 -0
- package/lib/commonjs/components/activity/ActivityIcon.js.map +1 -0
- package/lib/commonjs/components/activity/ActivityIntensity.js +65 -0
- package/lib/commonjs/components/activity/ActivityIntensity.js.map +1 -0
- package/lib/commonjs/components/mood/Emotion.js +86 -0
- package/lib/commonjs/components/mood/Emotion.js.map +1 -0
- package/lib/commonjs/components/mood/MoodIcon.js +107 -0
- package/lib/commonjs/components/mood/MoodIcon.js.map +1 -0
- package/lib/commonjs/components/styles/fonts.js +154 -0
- package/lib/commonjs/components/styles/fonts.js.map +1 -0
- package/lib/commonjs/index.js +21 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/locales/da/translations.json +82 -0
- package/lib/commonjs/locales/de/translations.json +81 -0
- package/lib/commonjs/locales/en/translations.json +84 -0
- package/lib/commonjs/locales/es/translations.json +81 -0
- package/lib/commonjs/locales/fr/translations.json +81 -0
- package/lib/commonjs/locales/it/translations.json +81 -0
- package/lib/commonjs/locales/translate.js +63 -0
- package/lib/commonjs/locales/translate.js.map +1 -0
- package/lib/commonjs/types/enum.js +179 -0
- package/lib/commonjs/types/enum.js.map +1 -0
- package/lib/commonjs/types/types.js +6 -0
- package/lib/commonjs/types/types.js.map +1 -0
- package/lib/commonjs/utils/AttentionMessages.js +141 -0
- package/lib/commonjs/utils/AttentionMessages.js.map +1 -0
- package/lib/commonjs/utils/Constants.js +138 -0
- package/lib/commonjs/utils/Constants.js.map +1 -0
- package/lib/commonjs/utils/RecommendationError.js +116 -0
- package/lib/commonjs/utils/RecommendationError.js.map +1 -0
- package/lib/commonjs/utils/RecommendationUtils.js +212 -0
- package/lib/commonjs/utils/RecommendationUtils.js.map +1 -0
- package/lib/commonjs/utils/Translations.js +22 -0
- package/lib/commonjs/utils/Translations.js.map +1 -0
- package/lib/commonjs/utils/Utils.js +162 -0
- package/lib/commonjs/utils/Utils.js.map +1 -0
- package/lib/commonjs/utils/Validations.js +468 -0
- package/lib/commonjs/utils/Validations.js.map +1 -0
- package/lib/module/RecommendationScreen.js +758 -0
- package/lib/module/RecommendationScreen.js.map +1 -0
- package/lib/module/assets/IconsSVG/Close.js +11 -0
- package/lib/module/assets/IconsSVG/Close.js.map +1 -0
- package/lib/module/assets/IconsSVG/CloseOutlined.js +19 -0
- package/lib/module/assets/IconsSVG/CloseOutlined.js.map +1 -0
- package/lib/module/assets/IconsSVG/Edit.js +14 -0
- package/lib/module/assets/IconsSVG/Edit.js.map +1 -0
- package/lib/module/assets/IconsSVG/activity/Cycling.js +34 -0
- package/lib/module/assets/IconsSVG/activity/Cycling.js.map +1 -0
- package/lib/module/assets/IconsSVG/activity/Running.js +24 -0
- package/lib/module/assets/IconsSVG/activity/Running.js.map +1 -0
- package/lib/module/assets/IconsSVG/activity/Stretching.js +24 -0
- package/lib/module/assets/IconsSVG/activity/Stretching.js.map +1 -0
- package/lib/module/assets/IconsSVG/activity/Swimming.js +39 -0
- package/lib/module/assets/IconsSVG/activity/Swimming.js.map +1 -0
- package/lib/module/assets/IconsSVG/activity/Walking.js +29 -0
- package/lib/module/assets/IconsSVG/activity/Walking.js.map +1 -0
- package/lib/module/assets/IconsSVG/mood/Happy.js +25 -0
- package/lib/module/assets/IconsSVG/mood/Happy.js.map +1 -0
- package/lib/module/assets/IconsSVG/mood/Neutral.js +25 -0
- package/lib/module/assets/IconsSVG/mood/Neutral.js.map +1 -0
- package/lib/module/assets/IconsSVG/mood/Sad.js +25 -0
- package/lib/module/assets/IconsSVG/mood/Sad.js.map +1 -0
- package/lib/module/assets/IconsSVG/mood/SemiHappy.js +25 -0
- package/lib/module/assets/IconsSVG/mood/SemiHappy.js.map +1 -0
- package/lib/module/assets/IconsSVG/mood/SemiSad.js +25 -0
- package/lib/module/assets/IconsSVG/mood/SemiSad.js.map +1 -0
- package/lib/module/components/ExitModal.js +114 -0
- package/lib/module/components/ExitModal.js.map +1 -0
- package/lib/module/components/InfoBars.js +114 -0
- package/lib/module/components/InfoBars.js.map +1 -0
- package/lib/module/components/InvisibleNumberInput.js +142 -0
- package/lib/module/components/InvisibleNumberInput.js.map +1 -0
- package/lib/module/components/LineSeparator.js +19 -0
- package/lib/module/components/LineSeparator.js.map +1 -0
- package/lib/module/components/RecentInsulin.js +97 -0
- package/lib/module/components/RecentInsulin.js.map +1 -0
- package/lib/module/components/RecommendationModal.js +291 -0
- package/lib/module/components/RecommendationModal.js.map +1 -0
- package/lib/module/components/RecommendedCarbs.js +281 -0
- package/lib/module/components/RecommendedCarbs.js.map +1 -0
- package/lib/module/components/RecommendedInsulin.js +200 -0
- package/lib/module/components/RecommendedInsulin.js.map +1 -0
- package/lib/module/components/Remeasure.js +123 -0
- package/lib/module/components/Remeasure.js.map +1 -0
- package/lib/module/components/Text.js +16 -0
- package/lib/module/components/Text.js.map +1 -0
- package/lib/module/components/TimeoutModal.js +103 -0
- package/lib/module/components/TimeoutModal.js.map +1 -0
- package/lib/module/components/TransferToLogbook.js +75 -0
- package/lib/module/components/TransferToLogbook.js.map +1 -0
- package/lib/module/components/activity/Activity.js +104 -0
- package/lib/module/components/activity/Activity.js.map +1 -0
- package/lib/module/components/activity/ActivityIcon.js +78 -0
- package/lib/module/components/activity/ActivityIcon.js.map +1 -0
- package/lib/module/components/activity/ActivityIntensity.js +57 -0
- package/lib/module/components/activity/ActivityIntensity.js.map +1 -0
- package/lib/module/components/mood/Emotion.js +78 -0
- package/lib/module/components/mood/Emotion.js.map +1 -0
- package/lib/module/components/mood/MoodIcon.js +97 -0
- package/lib/module/components/mood/MoodIcon.js.map +1 -0
- package/lib/module/components/styles/fonts.js +145 -0
- package/lib/module/components/styles/fonts.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/locales/da/translations.json +82 -0
- package/lib/module/locales/de/translations.json +81 -0
- package/lib/module/locales/en/translations.json +84 -0
- package/lib/module/locales/es/translations.json +81 -0
- package/lib/module/locales/fr/translations.json +81 -0
- package/lib/module/locales/it/translations.json +81 -0
- package/lib/module/locales/translate.js +55 -0
- package/lib/module/locales/translate.js.map +1 -0
- package/lib/module/types/enum.js +170 -0
- package/lib/module/types/enum.js.map +1 -0
- package/lib/module/types/types.js.map +1 -0
- package/lib/module/utils/AttentionMessages.js +131 -0
- package/lib/module/utils/AttentionMessages.js.map +1 -0
- package/{dist/src → lib/module}/utils/Constants.js +78 -35
- package/lib/module/utils/Constants.js.map +1 -0
- package/{dist/src → lib/module}/utils/RecommendationError.js +28 -6
- package/lib/module/utils/RecommendationError.js.map +1 -0
- package/{dist/src → lib/module}/utils/RecommendationUtils.js +89 -90
- package/lib/module/utils/RecommendationUtils.js.map +1 -0
- package/{dist/src → lib/module}/utils/Translations.js +5 -3
- package/lib/module/utils/Translations.js.map +1 -0
- package/lib/module/utils/Utils.js +155 -0
- package/lib/module/utils/Utils.js.map +1 -0
- package/{dist/src → lib/module}/utils/Validations.js +155 -128
- package/lib/module/utils/Validations.js.map +1 -0
- package/{dist/src → lib/typescript}/RecommendationScreen.d.ts +2 -1
- package/lib/typescript/RecommendationScreen.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/Close.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/Close.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/CloseOutlined.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/CloseOutlined.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/Edit.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/Edit.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/activity/Cycling.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/activity/Cycling.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/activity/Running.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/activity/Running.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/activity/Stretching.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/activity/Stretching.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/activity/Swimming.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/activity/Swimming.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/activity/Walking.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/activity/Walking.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/mood/Happy.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/mood/Happy.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/mood/Neutral.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/mood/Neutral.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/mood/Sad.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/mood/Sad.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/mood/SemiHappy.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/mood/SemiHappy.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/assets/IconsSVG/mood/SemiSad.d.ts +1 -0
- package/lib/typescript/assets/IconsSVG/mood/SemiSad.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/ExitModal.d.ts +1 -0
- package/lib/typescript/components/ExitModal.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/InfoBars.d.ts +1 -0
- package/lib/typescript/components/InfoBars.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/InvisibleNumberInput.d.ts +1 -0
- package/lib/typescript/components/InvisibleNumberInput.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/LineSeparator.d.ts +1 -0
- package/lib/typescript/components/LineSeparator.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/RecentInsulin.d.ts +1 -0
- package/lib/typescript/components/RecentInsulin.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/RecommendationModal.d.ts +1 -0
- package/lib/typescript/components/RecommendationModal.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/RecommendedCarbs.d.ts +1 -0
- package/lib/typescript/components/RecommendedCarbs.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/RecommendedInsulin.d.ts +1 -0
- package/lib/typescript/components/RecommendedInsulin.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/Remeasure.d.ts +1 -0
- package/lib/typescript/components/Remeasure.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/Text.d.ts +1 -0
- package/lib/typescript/components/Text.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/TimeoutModal.d.ts +1 -0
- package/lib/typescript/components/TimeoutModal.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/TransferToLogbook.d.ts +1 -0
- package/lib/typescript/components/TransferToLogbook.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/activity/Activity.d.ts +1 -0
- package/lib/typescript/components/activity/Activity.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/activity/ActivityIcon.d.ts +1 -0
- package/lib/typescript/components/activity/ActivityIcon.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/activity/ActivityIntensity.d.ts +1 -0
- package/lib/typescript/components/activity/ActivityIntensity.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/mood/Emotion.d.ts +1 -0
- package/lib/typescript/components/mood/Emotion.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/mood/MoodIcon.d.ts +1 -0
- package/lib/typescript/components/mood/MoodIcon.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/components/styles/fonts.d.ts +1 -0
- package/lib/typescript/components/styles/fonts.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/locales/translate.d.ts +1 -0
- package/lib/typescript/locales/translate.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/types/enum.d.ts +1 -0
- package/lib/typescript/types/enum.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/types/types.d.ts +1 -0
- package/lib/typescript/types/types.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/utils/AttentionMessages.d.ts +1 -0
- package/lib/typescript/utils/AttentionMessages.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/utils/Constants.d.ts +1 -0
- package/lib/typescript/utils/Constants.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/utils/RecommendationError.d.ts +1 -0
- package/lib/typescript/utils/RecommendationError.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/utils/RecommendationUtils.d.ts +1 -0
- package/lib/typescript/utils/RecommendationUtils.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/utils/Translations.d.ts +1 -0
- package/lib/typescript/utils/Translations.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/utils/Utils.d.ts +1 -0
- package/lib/typescript/utils/Utils.d.ts.map +1 -0
- package/{dist/src → lib/typescript}/utils/Validations.d.ts +1 -0
- package/lib/typescript/utils/Validations.d.ts.map +1 -0
- package/package.json +27 -7
- package/src/RecommendationScreen.tsx +854 -0
- package/src/assets/IconsSVG/Close.tsx +13 -0
- package/src/assets/IconsSVG/CloseOutlined.tsx +23 -0
- package/src/assets/IconsSVG/Edit.tsx +16 -0
- package/src/assets/IconsSVG/activity/Cycling.tsx +41 -0
- package/src/assets/IconsSVG/activity/Running.tsx +29 -0
- package/src/assets/IconsSVG/activity/Stretching.tsx +29 -0
- package/src/assets/IconsSVG/activity/Swimming.tsx +47 -0
- package/src/assets/IconsSVG/activity/Walking.tsx +35 -0
- package/src/assets/IconsSVG/mood/Happy.tsx +30 -0
- package/src/assets/IconsSVG/mood/Neutral.tsx +30 -0
- package/src/assets/IconsSVG/mood/Sad.tsx +30 -0
- package/src/assets/IconsSVG/mood/SemiHappy.tsx +30 -0
- package/src/assets/IconsSVG/mood/SemiSad.tsx +30 -0
- package/src/components/ExitModal.tsx +134 -0
- package/src/components/InfoBars.tsx +122 -0
- package/src/components/InvisibleNumberInput.tsx +170 -0
- package/src/components/LineSeparator.tsx +29 -0
- package/src/components/RecentInsulin.tsx +109 -0
- package/src/components/RecommendationModal.tsx +319 -0
- package/src/components/RecommendedCarbs.tsx +303 -0
- package/src/components/RecommendedInsulin.tsx +219 -0
- package/src/components/Remeasure.tsx +135 -0
- package/src/components/Text.tsx +27 -0
- package/src/components/TimeoutModal.tsx +121 -0
- package/src/components/TransferToLogbook.tsx +92 -0
- package/src/components/activity/Activity.tsx +107 -0
- package/src/components/activity/ActivityIcon.tsx +77 -0
- package/src/components/activity/ActivityIntensity.tsx +67 -0
- package/src/components/mood/Emotion.tsx +97 -0
- package/src/components/mood/MoodIcon.tsx +91 -0
- package/src/components/styles/fonts.ts +145 -0
- package/src/index.ts +5 -0
- package/src/locales/da/translations.json +82 -0
- package/src/locales/de/translations.json +81 -0
- package/src/locales/en/translations.json +84 -0
- package/src/locales/es/translations.json +81 -0
- package/src/locales/fr/translations.json +81 -0
- package/src/locales/it/translations.json +81 -0
- package/src/locales/translate.ts +62 -0
- package/src/types/enum.ts +164 -0
- package/src/types/types.ts +19 -0
- package/src/utils/AttentionMessages.ts +167 -0
- package/src/utils/Constants.ts +77 -0
- package/src/utils/RecommendationError.ts +182 -0
- package/src/utils/RecommendationUtils.ts +232 -0
- package/src/utils/Translations.ts +17 -0
- package/src/utils/Utils.ts +156 -0
- package/src/utils/Validations.ts +490 -0
- package/dist/index.d.ts +0 -5
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/src/RecommendationScreen.js +0 -537
- package/dist/src/RecommendationScreen.js.map +0 -1
- package/dist/src/assets/IconsSVG/Close.js +0 -7
- package/dist/src/assets/IconsSVG/Close.js.map +0 -1
- package/dist/src/assets/IconsSVG/CloseOutlined.js +0 -9
- package/dist/src/assets/IconsSVG/CloseOutlined.js.map +0 -1
- package/dist/src/assets/IconsSVG/Edit.js +0 -8
- package/dist/src/assets/IconsSVG/Edit.js.map +0 -1
- package/dist/src/assets/IconsSVG/activity/Cycling.js +0 -12
- package/dist/src/assets/IconsSVG/activity/Cycling.js.map +0 -1
- package/dist/src/assets/IconsSVG/activity/Running.js +0 -10
- package/dist/src/assets/IconsSVG/activity/Running.js.map +0 -1
- package/dist/src/assets/IconsSVG/activity/Stretching.js +0 -10
- package/dist/src/assets/IconsSVG/activity/Stretching.js.map +0 -1
- package/dist/src/assets/IconsSVG/activity/Swimming.js +0 -13
- package/dist/src/assets/IconsSVG/activity/Swimming.js.map +0 -1
- package/dist/src/assets/IconsSVG/activity/Walking.js +0 -11
- package/dist/src/assets/IconsSVG/activity/Walking.js.map +0 -1
- package/dist/src/assets/IconsSVG/mood/Happy.js +0 -11
- package/dist/src/assets/IconsSVG/mood/Happy.js.map +0 -1
- package/dist/src/assets/IconsSVG/mood/Neutral.js +0 -11
- package/dist/src/assets/IconsSVG/mood/Neutral.js.map +0 -1
- package/dist/src/assets/IconsSVG/mood/Sad.js +0 -11
- package/dist/src/assets/IconsSVG/mood/Sad.js.map +0 -1
- package/dist/src/assets/IconsSVG/mood/SemiHappy.js +0 -11
- package/dist/src/assets/IconsSVG/mood/SemiHappy.js.map +0 -1
- package/dist/src/assets/IconsSVG/mood/SemiSad.js +0 -11
- package/dist/src/assets/IconsSVG/mood/SemiSad.js.map +0 -1
- package/dist/src/components/ExitModal.js +0 -91
- package/dist/src/components/ExitModal.js.map +0 -1
- package/dist/src/components/InfoBars.js +0 -98
- package/dist/src/components/InfoBars.js.map +0 -1
- package/dist/src/components/InvisibleNumberInput.js +0 -123
- package/dist/src/components/InvisibleNumberInput.js.map +0 -1
- package/dist/src/components/LineSeparator.js +0 -17
- package/dist/src/components/LineSeparator.js.map +0 -1
- package/dist/src/components/RecentInsulin.js +0 -90
- package/dist/src/components/RecentInsulin.js.map +0 -1
- package/dist/src/components/RecommendationModal.js +0 -241
- package/dist/src/components/RecommendationModal.js.map +0 -1
- package/dist/src/components/RecommendedCarbs.js +0 -234
- package/dist/src/components/RecommendedCarbs.js.map +0 -1
- package/dist/src/components/RecommendedInsulin.js +0 -166
- package/dist/src/components/RecommendedInsulin.js.map +0 -1
- package/dist/src/components/Remeasure.js +0 -103
- package/dist/src/components/Remeasure.js.map +0 -1
- package/dist/src/components/Text.js +0 -14
- package/dist/src/components/Text.js.map +0 -1
- package/dist/src/components/TimeoutModal.js +0 -84
- package/dist/src/components/TimeoutModal.js.map +0 -1
- package/dist/src/components/TransferToLogbook.js +0 -68
- package/dist/src/components/TransferToLogbook.js.map +0 -1
- package/dist/src/components/activity/Activity.js +0 -93
- package/dist/src/components/activity/Activity.js.map +0 -1
- package/dist/src/components/activity/ActivityIcon.js +0 -66
- package/dist/src/components/activity/ActivityIcon.js.map +0 -1
- package/dist/src/components/activity/ActivityIntensity.js +0 -55
- package/dist/src/components/activity/ActivityIntensity.js.map +0 -1
- package/dist/src/components/mood/Emotion.js +0 -69
- package/dist/src/components/mood/Emotion.js.map +0 -1
- package/dist/src/components/mood/MoodIcon.js +0 -68
- package/dist/src/components/mood/MoodIcon.js.map +0 -1
- package/dist/src/components/styles/fonts.js +0 -145
- package/dist/src/components/styles/fonts.js.map +0 -1
- package/dist/src/locales/da/translations.json +0 -82
- package/dist/src/locales/de/translations.json +0 -81
- package/dist/src/locales/en/translations.json +0 -84
- package/dist/src/locales/es/translations.json +0 -81
- package/dist/src/locales/fr/translations.json +0 -81
- package/dist/src/locales/it/translations.json +0 -81
- package/dist/src/locales/translate.js +0 -53
- package/dist/src/locales/translate.js.map +0 -1
- package/dist/src/types/enum.js +0 -154
- package/dist/src/types/enum.js.map +0 -1
- package/dist/src/types/types.js.map +0 -1
- package/dist/src/utils/AttentionMessages.js +0 -123
- package/dist/src/utils/AttentionMessages.js.map +0 -1
- package/dist/src/utils/Constants.js.map +0 -1
- package/dist/src/utils/RecommendationError.js.map +0 -1
- package/dist/src/utils/RecommendationUtils.js.map +0 -1
- package/dist/src/utils/Translations.js.map +0 -1
- package/dist/src/utils/Utils.js +0 -142
- package/dist/src/utils/Utils.js.map +0 -1
- package/dist/src/utils/Validations.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/{dist/src → lib/module}/types/types.js +0 -0
|
@@ -1,537 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { AppState, LogBox, StyleSheet, View } from "react-native";
|
|
3
|
-
import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view";
|
|
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";
|
|
10
|
-
import RecentInsulin from "./components/RecentInsulin";
|
|
11
|
-
import RecommendationModal from "./components/RecommendationModal";
|
|
12
|
-
import RecommendedCarbs from "./components/RecommendedCarbs";
|
|
13
|
-
import RecommendedInsulin from "./components/RecommendedInsulin";
|
|
14
|
-
import Remeasure from "./components/Remeasure";
|
|
15
|
-
import { FONTS } from "./components/styles/fonts";
|
|
16
|
-
import Text from "./components/Text";
|
|
17
|
-
import TimeoutModal from "./components/TimeoutModal";
|
|
18
|
-
import TransferToLogbook from "./components/TransferToLogbook";
|
|
19
|
-
import { changeLocale, t } from "./locales/translate";
|
|
20
|
-
import { ExitModalActions, Testing, TimeoutModalActions } from "./types/enum";
|
|
21
|
-
import { Messages } from "./utils/AttentionMessages";
|
|
22
|
-
import { colors } from "./utils/Constants";
|
|
23
|
-
import { getAttentionMessage, getBGLevel, getLimitationMessage, getReminder } from "./utils/RecommendationUtils";
|
|
24
|
-
import { Utils } from "./utils/Utils";
|
|
25
|
-
import { validateParams } from "./utils/Validations";
|
|
26
|
-
const { InfoBarTestIds, RecommendationScreenTestIds } = Testing.Id;
|
|
27
|
-
// Ignoring long timer warnings
|
|
28
|
-
// https://github.com/facebook/react-native/issues/12981#issuecomment-652745831
|
|
29
|
-
LogBox.ignoreLogs([`Setting a timer`]);
|
|
30
|
-
/**
|
|
31
|
-
* The RecommendationScreen is the React component that passes relevant inputs to the recommendation calculation module and presents
|
|
32
|
-
* the resulting recommendation along with related messages or warnings to the user.
|
|
33
|
-
* The RecommendationScreen component accepts properties with the user’s settings/preferences and other inputs needed for calculating a recommendation.
|
|
34
|
-
* @noInheritDoc
|
|
35
|
-
*/
|
|
36
|
-
export default class RecommendationScreen extends React.Component {
|
|
37
|
-
/** Reference to the timer that prompts the user to make a new calculation after 15 minutes. */
|
|
38
|
-
timer;
|
|
39
|
-
/**
|
|
40
|
-
* The carbohydrate recommendation for the user.
|
|
41
|
-
* This value is saved in a member variable because we want to store it unmodified if the logbook entry
|
|
42
|
-
* gets saved regardless of what other changes were made on the recommendation screen.
|
|
43
|
-
*/
|
|
44
|
-
suggestedCarbs;
|
|
45
|
-
/**
|
|
46
|
-
* A guard against displaying wrong or dangerous information to the user.
|
|
47
|
-
* If an error has occurred, this variable will be set to true and an empty placeholder will be rendered instead of the normal recommendation screen.
|
|
48
|
-
*/
|
|
49
|
-
hasError = false;
|
|
50
|
-
/** The timestamp when the current recommendation was made. For determining if the recommendation is too old and should be hidden from the user. */
|
|
51
|
-
recommendationDate;
|
|
52
|
-
/**
|
|
53
|
-
* A reference to the screens scrollview allowing us to programmatically scroll the screen in the handleNoRecentInsulin() method.
|
|
54
|
-
* The member is initiated without a value but will be set as soon as the component is being rendered.
|
|
55
|
-
*/
|
|
56
|
-
scrollView;
|
|
57
|
-
/**
|
|
58
|
-
* A reference to the eventSubscription that'll be returned by AppState.addEventListener().
|
|
59
|
-
* It'll allow us to later remove the subscription.
|
|
60
|
-
*/
|
|
61
|
-
appStateSubscription;
|
|
62
|
-
/**
|
|
63
|
-
* Steps:
|
|
64
|
-
* 1. Call the super() method with the props.
|
|
65
|
-
* 2. Execute the following steps and if an exception is thrown, catch it, set the hasError member variable to true and call the onError callback prop with the caught exception as argument:
|
|
66
|
-
* - Call the validateParams() method with the props as argument
|
|
67
|
-
* - Set the recommendationDate member to the current date and time
|
|
68
|
-
* - Set the language by using the language prop as argument for calling changeLanguage()
|
|
69
|
-
* - Unpack recentBoluses from the calculatorParams prop.
|
|
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
|
|
72
|
-
* - Copy the carbRecommendation to the suggestedCarbs member variable.
|
|
73
|
-
* - Set the following state variables:
|
|
74
|
-
* - Set remeasureTime to the return value from calling the getBGLevelRemeasurementReminder() method.
|
|
75
|
-
* - Set isRecommendationDisplayed to be false if the length of recentBoluses is 0 or false otherwise.
|
|
76
|
-
* - Set insulinRecommendation to be the bolus insulin recommendation rounded using roundValue().
|
|
77
|
-
* - Set wasLimited to the wasLimited return value from calling calculateRecommendation() above.
|
|
78
|
-
* - Set activityReduction to the reduction returned from the calculation result.
|
|
79
|
-
* - Set carbRecommendation to the recommendation returned from the calculation result.
|
|
80
|
-
* - Set activeInsulin to the estimation returned from the calculation result.
|
|
81
|
-
* - Set enteredCarbs, enteredInsulin, selectedMood to null.
|
|
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.
|
|
83
|
-
* - Set onlyShowLimitationMessage, showTimeoutModal to be false.
|
|
84
|
-
* - Set showExitModal with the value of the showExitModal prop.
|
|
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.
|
|
86
|
-
* @param props The data required to initialise the Recommendation Screen
|
|
87
|
-
*/
|
|
88
|
-
constructor(props) {
|
|
89
|
-
super(props);
|
|
90
|
-
try {
|
|
91
|
-
validateParams(props);
|
|
92
|
-
changeLocale(props.language);
|
|
93
|
-
this.recommendationDate = new Date();
|
|
94
|
-
const { recentBoluses } = props.calculatorParams;
|
|
95
|
-
const { bolus, carbRecommendation, activityReduction, wasLimited, activeInsulin } = Calculator.calculateRecommendation(props.calculatorParams);
|
|
96
|
-
this.suggestedCarbs = carbRecommendation;
|
|
97
|
-
const isRecommendationDisplayed = recentBoluses?.length !== 0;
|
|
98
|
-
if (isRecommendationDisplayed) {
|
|
99
|
-
this.props.onRecommendationDisplayed();
|
|
100
|
-
}
|
|
101
|
-
this.state = {
|
|
102
|
-
remeasureTime: this.getBGLevelRemeasurementReminder(),
|
|
103
|
-
isRecommendationDisplayed,
|
|
104
|
-
insulinRecommendation: Utils.roundValue(bolus, props.injectionMethod),
|
|
105
|
-
wasLimited,
|
|
106
|
-
activityReduction,
|
|
107
|
-
carbRecommendation,
|
|
108
|
-
activeInsulin,
|
|
109
|
-
enteredCarbs: null,
|
|
110
|
-
enteredInsulin: null,
|
|
111
|
-
selectedMood: null,
|
|
112
|
-
recommendationModal: wasLimited || !!Math.round(carbRecommendation) || !!this.getBGLevelAttentionMessage(),
|
|
113
|
-
onlyShowLimitationMessage: false,
|
|
114
|
-
showExitModal: props.showExitModal,
|
|
115
|
-
showTimeoutModal: false,
|
|
116
|
-
timeoutModalAction: null,
|
|
117
|
-
exitModalAction: null,
|
|
118
|
-
};
|
|
119
|
-
this.timer = setTimeout(this.showTimeoutModal, Milliseconds.Minute * 15);
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
this.hasError = true;
|
|
123
|
-
props.onError(error);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Called immediately after a component is mounted. Setting state here will trigger re-rendering.
|
|
128
|
-
*
|
|
129
|
-
* Steps:
|
|
130
|
-
* 1. If there is no error, create a listener to call the handleAppStateChange() method when the app state changes.
|
|
131
|
-
*/
|
|
132
|
-
componentDidMount() {
|
|
133
|
-
if (!this.hasError) {
|
|
134
|
-
this.appStateSubscription = AppState.addEventListener(`change`, this.handleAppStateChange);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Called immediately before a component is destroyed.
|
|
139
|
-
* Perform any necessary cleanup in this method, such as cancelled network requests, or cleaning up any DOM elements created in componentDidMount.
|
|
140
|
-
*
|
|
141
|
-
* Clear the 15 minute timer that was set in the constructor during initialisation so it doesn't keep running and gets triggered after the recommendation screen was closed.
|
|
142
|
-
*
|
|
143
|
-
* Steps:
|
|
144
|
-
* 1. Call clearTimeout on the timer member variable.
|
|
145
|
-
* 2. Remove the listener for app state changes that was set by the componentDidMount() method.
|
|
146
|
-
*/
|
|
147
|
-
componentWillUnmount() {
|
|
148
|
-
if (this.timer !== undefined) {
|
|
149
|
-
clearTimeout(this.timer);
|
|
150
|
-
}
|
|
151
|
-
this.appStateSubscription?.remove();
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Called immediately after updating occurs. This method is not called for the initial render.
|
|
155
|
-
* Use this as an opportunity to operate on the DOM when the component has been updated.
|
|
156
|
-
* Steps:
|
|
157
|
-
* 1. If the showExitModal prop is true and it was false before, call the onExit() method.
|
|
158
|
-
* @param showExitModal The previous showExitModal props of the component.
|
|
159
|
-
*/
|
|
160
|
-
componentDidUpdate({ showExitModal }) {
|
|
161
|
-
if (this.props.showExitModal && showExitModal !== this.props.showExitModal) {
|
|
162
|
-
this.onExit();
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Steps:
|
|
167
|
-
* 1. Evaluate a boolean called isOlderThan15Minutes to indicate whether the recommendationDate member variable represents a time more than 15 minutes ago.
|
|
168
|
-
* 2. If nextAppState is ‘active’ and isOlderThan15Minutes is true then call the showTimeoutModal() method.
|
|
169
|
-
* @param nextAppState The new state of the app.
|
|
170
|
-
*/
|
|
171
|
-
handleAppStateChange = (nextAppState) => {
|
|
172
|
-
const time = this.recommendationDate.getTime();
|
|
173
|
-
const isOlderThan15Minutes = new Date().getTime() - time > Milliseconds.Minute * 15;
|
|
174
|
-
if (nextAppState === `active` && isOlderThan15Minutes) {
|
|
175
|
-
this.showTimeoutModal();
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
/**
|
|
179
|
-
* Steps:
|
|
180
|
-
* 1. Set the showTimeoutModal state variable to be true.
|
|
181
|
-
* */
|
|
182
|
-
showTimeoutModal = () => {
|
|
183
|
-
this.setState({ showTimeoutModal: true });
|
|
184
|
-
};
|
|
185
|
-
/**
|
|
186
|
-
* Make a new insulin calculation and set the result to be displayed to the user.
|
|
187
|
-
*
|
|
188
|
-
* Steps:
|
|
189
|
-
* 1. Use calculatorParams as an argument for calling calculateRecommendation(). Unpack bolus, wasLimited, and activityReduction from the result.
|
|
190
|
-
* 2. Set the following state variables:
|
|
191
|
-
* - Set insulinRecommendation to the bolus rounded using the roundValue() function.
|
|
192
|
-
* - Set enteredInsulin to be undefined.
|
|
193
|
-
* - Set wasLimited to be the value returned from the insulin calculator.
|
|
194
|
-
* - Set activityReduction to be the value returned from the insulin calculator.
|
|
195
|
-
* - Set showLimitationMessage to be the wasLimited value returned from the insulin calculator.
|
|
196
|
-
* @param calculatorParams The input values for the bolus calculator itself.
|
|
197
|
-
*/
|
|
198
|
-
recalculateInsulin = (calculatorParams) => {
|
|
199
|
-
const { bolus, wasLimited, activityReduction } = Calculator.calculateRecommendation(calculatorParams);
|
|
200
|
-
this.setState({
|
|
201
|
-
insulinRecommendation: Utils.roundValue(bolus, this.props.injectionMethod),
|
|
202
|
-
enteredInsulin: null,
|
|
203
|
-
wasLimited,
|
|
204
|
-
activityReduction,
|
|
205
|
-
onlyShowLimitationMessage: wasLimited,
|
|
206
|
-
});
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* Handle presses on the exit button in the header bar.
|
|
210
|
-
*
|
|
211
|
-
* Steps:
|
|
212
|
-
* 1. If the insulin recommendation is being displayed (the isRecommendationDisplayed state variable is true):
|
|
213
|
-
* - Set the showExitModal state variable to true.
|
|
214
|
-
* 2. Else:
|
|
215
|
-
* - Call the exitCallback prop callback function.
|
|
216
|
-
*/
|
|
217
|
-
onExit = () => {
|
|
218
|
-
if (this.state?.isRecommendationDisplayed) {
|
|
219
|
-
this.setState({ showExitModal: true });
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
this.props.exitCallback();
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
/**
|
|
226
|
-
* Hide the modal that shows attention messages.
|
|
227
|
-
*
|
|
228
|
-
* Steps:
|
|
229
|
-
* 1. Set the recommendationModal state variable to false.
|
|
230
|
-
*/
|
|
231
|
-
hideAttentionModal = () => {
|
|
232
|
-
this.setState({ recommendationModal: false, onlyShowLimitationMessage: false });
|
|
233
|
-
};
|
|
234
|
-
/**
|
|
235
|
-
* Handle presses on the transfer button in the exit modal.
|
|
236
|
-
*/
|
|
237
|
-
onPressTransferExitModal = () => {
|
|
238
|
-
this.setState({ showExitModal: false, exitModalAction: ExitModalActions.Transfer });
|
|
239
|
-
};
|
|
240
|
-
/**
|
|
241
|
-
* Handle presses on the close calculation button in the exit modal.
|
|
242
|
-
*/
|
|
243
|
-
onPressCloseExitModal = () => {
|
|
244
|
-
this.setState({ showExitModal: false, exitModalAction: ExitModalActions.CloseCalculation });
|
|
245
|
-
};
|
|
246
|
-
/**
|
|
247
|
-
* Handle presses on the hide button in the exit modal.
|
|
248
|
-
*/
|
|
249
|
-
onPressHideExitModal = () => {
|
|
250
|
-
this.setState({ showExitModal: false, exitModalAction: ExitModalActions.Hide });
|
|
251
|
-
};
|
|
252
|
-
/**
|
|
253
|
-
* Call the chosen modal action on the didHide modal callback .
|
|
254
|
-
*/
|
|
255
|
-
onExitModalDidHide = () => {
|
|
256
|
-
switch (this.state.exitModalAction) {
|
|
257
|
-
case ExitModalActions.Transfer:
|
|
258
|
-
this.handleTransfer();
|
|
259
|
-
break;
|
|
260
|
-
case ExitModalActions.CloseCalculation:
|
|
261
|
-
this.props.closeCalculationCallback();
|
|
262
|
-
break;
|
|
263
|
-
case ExitModalActions.Hide:
|
|
264
|
-
this.props.hideExitModal();
|
|
265
|
-
break;
|
|
266
|
-
}
|
|
267
|
-
};
|
|
268
|
-
/**
|
|
269
|
-
* Handle presses on the close calculation button in the timeout modal.
|
|
270
|
-
*/
|
|
271
|
-
onPressCloseCalculationTimeoutModal = () => {
|
|
272
|
-
this.setState({ showTimeoutModal: false, timeoutModalAction: TimeoutModalActions.CloseCalculation });
|
|
273
|
-
};
|
|
274
|
-
/**
|
|
275
|
-
* Handle presses on the restart calculation button in the timeout modal.
|
|
276
|
-
*/
|
|
277
|
-
onPressRestartCalculationTimeoutModal = () => {
|
|
278
|
-
this.setState({ showTimeoutModal: false, timeoutModalAction: TimeoutModalActions.RestartCalculation });
|
|
279
|
-
};
|
|
280
|
-
/**
|
|
281
|
-
* Handle presses on the transfer button in the timeout modal.
|
|
282
|
-
*/
|
|
283
|
-
onPressTransferTimeoutModal = () => {
|
|
284
|
-
this.setState({ showTimeoutModal: false, timeoutModalAction: TimeoutModalActions.Transfer });
|
|
285
|
-
};
|
|
286
|
-
/**
|
|
287
|
-
* Call the chosen modal action on the didHide modal callback .
|
|
288
|
-
*/
|
|
289
|
-
onTimeoutModalDidHide = () => {
|
|
290
|
-
switch (this.state.timeoutModalAction) {
|
|
291
|
-
case TimeoutModalActions.RestartCalculation:
|
|
292
|
-
this.props.restartCalculation();
|
|
293
|
-
break;
|
|
294
|
-
case TimeoutModalActions.Transfer:
|
|
295
|
-
this.props.onSaveToLogbook();
|
|
296
|
-
this.handleTransfer();
|
|
297
|
-
break;
|
|
298
|
-
case TimeoutModalActions.CloseCalculation:
|
|
299
|
-
this.props.onReturnToDashboard();
|
|
300
|
-
this.props.closeCalculationCallback();
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
|
-
};
|
|
304
|
-
/**
|
|
305
|
-
* Used as a callback function for the Remeasure component to update the state when the remeasure time slider’s value changes.
|
|
306
|
-
*
|
|
307
|
-
* Steps:
|
|
308
|
-
* 1. Set the remeasureTime state variable to the value of the remeasureTime argument.
|
|
309
|
-
* @param remeasureTime The number of hours for which to wait before reminding the user to measure their BGL again. 0 indicates that the user should not be reminded.
|
|
310
|
-
*/
|
|
311
|
-
updateRemeasureTime = (remeasureTime) => {
|
|
312
|
-
this.setState({ remeasureTime });
|
|
313
|
-
};
|
|
314
|
-
/**
|
|
315
|
-
* Handle what happens if the user taps “No” to the question about injecting insulin within the last 4 hours.
|
|
316
|
-
* The card that prompts the user to answer if they have injected insulin within the last 4 hours shall be hidden and
|
|
317
|
-
* the screen shall automatically be scrolled to the bottom so the user can see the now visible “Transfer to logbook” button.
|
|
318
|
-
*
|
|
319
|
-
* Steps:
|
|
320
|
-
* 1. Set the isRecommendationDisplayed state variable to be true.
|
|
321
|
-
* 2. Call the onRecommendationDisplayed prop callback function.
|
|
322
|
-
* 3. As a callback to the setState() method, define a new anonymous function that calls setTimeout() with a duration of 0 milliseconds.
|
|
323
|
-
* When the time expires, call the scrollToEnd() method of the scrollView member, with the animated argument set to true.
|
|
324
|
-
* This ensures that the scroll event happens after all other events that get queued to happen at the same time,
|
|
325
|
-
* so all relevant elements are visible on the screen and the scroll happens reliably.
|
|
326
|
-
*/
|
|
327
|
-
handleNoRecentInsulin = () => {
|
|
328
|
-
this.props.onRecentInsulinNo();
|
|
329
|
-
this.setState({ isRecommendationDisplayed: true }, () => {
|
|
330
|
-
this.props.onRecommendationDisplayed();
|
|
331
|
-
setTimeout(() => {
|
|
332
|
-
this.scrollView?.scrollToEnd(true);
|
|
333
|
-
}, 0);
|
|
334
|
-
});
|
|
335
|
-
};
|
|
336
|
-
/**
|
|
337
|
-
* Handle what happens when the user changes the content of the additional carbohydrates input field.
|
|
338
|
-
*
|
|
339
|
-
* Steps:
|
|
340
|
-
* 1. Set the enteredCarbs state variable to the value of the enteredCarbs argument.
|
|
341
|
-
* 2. As a callback to the setState() method, define a new anonymous function that calls the recalculateInsulin() function using
|
|
342
|
-
* a copy of the calculatorParams prop where the carbohydrates property has been overwritten to be
|
|
343
|
-
* the sum of the carbohydrates property of the calculatorParams prop and the enteredCarbs argument.
|
|
344
|
-
* @param enteredCarbs The amount of carbohydrates in grams that has been entered in the additional carbohydrates input field.
|
|
345
|
-
*/
|
|
346
|
-
updateCarbRecommendation = (enteredCarbs) => {
|
|
347
|
-
const providedCarbs = this.props.calculatorParams.carbohydrates;
|
|
348
|
-
this.setState({ enteredCarbs }, () => {
|
|
349
|
-
this.recalculateInsulin({ ...this.props.calculatorParams, carbohydrates: providedCarbs + enteredCarbs });
|
|
350
|
-
});
|
|
351
|
-
};
|
|
352
|
-
/**
|
|
353
|
-
* Handle what happens when the cross button by the additional carbohydrates button is tapped.
|
|
354
|
-
*
|
|
355
|
-
* Steps:
|
|
356
|
-
* 1. Set both the enteredCarbs and the carbRecommendation state variables to null.
|
|
357
|
-
* 2. As a callback to the setState() method, define a new anonymous function that calls the recalculateInsulin() function using a copy of the calculatorParams prop.
|
|
358
|
-
*/
|
|
359
|
-
removeCarbRecommendation = () => {
|
|
360
|
-
this.setState({ enteredCarbs: null, carbRecommendation: null }, () => this.recalculateInsulin({ ...this.props.calculatorParams }));
|
|
361
|
-
};
|
|
362
|
-
/**
|
|
363
|
-
* Handle what happens when the user is recommended to eat additional carbohydrates but taps the decline button.
|
|
364
|
-
*
|
|
365
|
-
* Steps:
|
|
366
|
-
* 1. Call the hideAttentionModal() method.
|
|
367
|
-
* 2. Call the removeCarbRecommendation() method.
|
|
368
|
-
* 3. Call the carbRecommendationAnswer() prop callback function with false as argument.
|
|
369
|
-
*/
|
|
370
|
-
declineCarbRecommendation = () => {
|
|
371
|
-
this.hideAttentionModal();
|
|
372
|
-
this.removeCarbRecommendation();
|
|
373
|
-
this.props.carbRecommendationAnswer(false);
|
|
374
|
-
};
|
|
375
|
-
/**
|
|
376
|
-
* Handle what happens when the user is recommended to eat additional carbohydrates and they tap the accept button.
|
|
377
|
-
*
|
|
378
|
-
* Steps:
|
|
379
|
-
* 1. Call the hideAttentionModal() method.
|
|
380
|
-
* 2. Call the carbRecommendationAnswer() prop callback function with true as argument.
|
|
381
|
-
*/
|
|
382
|
-
acceptCarbRecommendation = () => {
|
|
383
|
-
this.hideAttentionModal();
|
|
384
|
-
this.props.carbRecommendationAnswer(true);
|
|
385
|
-
};
|
|
386
|
-
/**
|
|
387
|
-
* Used as a callback function for the Emotion component to update the state when a mood icon is tapped.
|
|
388
|
-
*
|
|
389
|
-
* Steps:
|
|
390
|
-
* 1. Set the selectedMood state variable to the value of the selectedMood argument.
|
|
391
|
-
* @param selectedMood he mood that should be selected going forward or null if no mood should be selected.
|
|
392
|
-
*/
|
|
393
|
-
handleMoodSelected = (selectedMood) => {
|
|
394
|
-
this.setState({ selectedMood });
|
|
395
|
-
};
|
|
396
|
-
/**
|
|
397
|
-
* Handle what happens when the user changes the content of the insulin input field.
|
|
398
|
-
*
|
|
399
|
-
* Steps:
|
|
400
|
-
* 1. Set the enteredInsulin state variable to the value of the enteredInsulin argument.
|
|
401
|
-
* @param enteredInsulin The amount of insulin (in units) that has been entered in the insulin input field.
|
|
402
|
-
*/
|
|
403
|
-
updateInsulinRecommendation = (enteredInsulin) => {
|
|
404
|
-
this.setState({ enteredInsulin });
|
|
405
|
-
};
|
|
406
|
-
/**
|
|
407
|
-
* Handle what happens when the “Transfer to Logbook” button is pressed.
|
|
408
|
-
* Namely, the entered data should be saved in a logbook entry and the recommendation screen should be closed.
|
|
409
|
-
*
|
|
410
|
-
* Steps:
|
|
411
|
-
* 1. Unpack the enteredCarbs, enteredInsulin, insulinRecommendation, remeasureTime, and showExitModal state variables
|
|
412
|
-
* 2. Create an IResult object called carbs consisting of suggestedCarbs and enteredCarbs.
|
|
413
|
-
* 3. Create an IResult object called Insulin consisting of insulinRecommendation and enteredInsulin.
|
|
414
|
-
* 4. Call the transferToLogbook prop callback function with the following arguments:
|
|
415
|
-
* - Set the carbs argument to the carbs IResult object.
|
|
416
|
-
* - Set the insulin argument to the insulin IResult object.
|
|
417
|
-
* - Set the reminder argument to the remeasureTime state variable.
|
|
418
|
-
* - Set the recommendationDate argument to the recommendationDate member variable.
|
|
419
|
-
*/
|
|
420
|
-
handleTransfer = () => {
|
|
421
|
-
const { enteredCarbs, enteredInsulin, insulinRecommendation, remeasureTime, selectedMood } = this.state;
|
|
422
|
-
const carbs = { suggested: this.suggestedCarbs, entered: enteredCarbs };
|
|
423
|
-
const insulin = { suggested: insulinRecommendation, entered: enteredInsulin };
|
|
424
|
-
this.props.transferToLogbook(carbs, insulin, remeasureTime, this.recommendationDate, selectedMood);
|
|
425
|
-
};
|
|
426
|
-
/**
|
|
427
|
-
* Get the attention message that should be displayed for the user to draw their attention to noteworthy circumstances regarding their current blood glucose level.
|
|
428
|
-
*
|
|
429
|
-
* Steps:
|
|
430
|
-
* 1. Unpack calculatorParams and latestLogbookFrom6Hours from the props.
|
|
431
|
-
* 2. Unpack currentBGL and activity from calculatorparams.
|
|
432
|
-
* 3. Get bgLevel, the categorisation of the blood glucose level, by calling the getBGLevel() function with the currentBGL and latestLogbookFrom6Hours as arguments.
|
|
433
|
-
* 4. Return the attention message that is returned when calling getAttentionMessage() using bgLevel and activity as arguments.
|
|
434
|
-
* @returns A string describing what the user needs to be aware of regarding their current blood glucose level.
|
|
435
|
-
* If there is nothing noteworthy, null will be returned instead.
|
|
436
|
-
*/
|
|
437
|
-
getBGLevelAttentionMessage = () => {
|
|
438
|
-
const { calculatorParams, latestLogbookFrom6Hours } = this.props;
|
|
439
|
-
const { currentBGL, activity } = calculatorParams;
|
|
440
|
-
const bgLevel = getBGLevel(currentBGL, latestLogbookFrom6Hours);
|
|
441
|
-
return getAttentionMessage(bgLevel, activity);
|
|
442
|
-
};
|
|
443
|
-
/**
|
|
444
|
-
* Get the initial value for the remeasurement reminder time slider depending on the user’s entered information.
|
|
445
|
-
*
|
|
446
|
-
* Steps:
|
|
447
|
-
* 1. Unpack calculatorParams, userReminder, and latestLogbookFrom6Hours from the props.
|
|
448
|
-
* 2. Unpack currentBGL, activity, and carbohydrates from calculatorParams.
|
|
449
|
-
* 3. Get bgLevel, the categorisation of the blood glucose level, by calling the getBGLevel() function with the currentBGL and latestLogbookFrom6Hours as arguments.
|
|
450
|
-
* 4. Return the attention message that is returned when calling getReminder() using bgLevel, carbohydrates, userReminder, and activity as arguments.
|
|
451
|
-
* @returns The time interval in hours that should be used as the initial value for the remeasurement reminder time slider.
|
|
452
|
-
*/
|
|
453
|
-
getBGLevelRemeasurementReminder = () => {
|
|
454
|
-
const { calculatorParams, userReminder, latestLogbookFrom6Hours } = this.props;
|
|
455
|
-
const { currentBGL, activity, carbohydrates } = calculatorParams;
|
|
456
|
-
const bgLevel = getBGLevel(currentBGL, latestLogbookFrom6Hours);
|
|
457
|
-
return getReminder(bgLevel, carbohydrates, userReminder, activity);
|
|
458
|
-
};
|
|
459
|
-
/**
|
|
460
|
-
* Get the attention message that should be displayed to the user to let them know that the insulin recommendation that
|
|
461
|
-
* is being displayed to them was limited by the maximum insulin threshold.
|
|
462
|
-
*
|
|
463
|
-
* Steps:
|
|
464
|
-
* 1. Unpack the wasLimited and activityReduction state variables.
|
|
465
|
-
* 2. Return the result from calling getLimitationMessage() with wasLimited and activityReduction as arguments.
|
|
466
|
-
* @returns A message to inform the user how the insulin recommendation was limited. If there is no limitation attention message, null will be returned instead.
|
|
467
|
-
*/
|
|
468
|
-
getLimitationAttentionMessage = () => {
|
|
469
|
-
const { wasLimited, activityReduction } = this.state;
|
|
470
|
-
return getLimitationMessage(wasLimited, activityReduction);
|
|
471
|
-
};
|
|
472
|
-
/** Render a JSX element for displaying the insulin recommendation screen. */
|
|
473
|
-
render() {
|
|
474
|
-
if (this.hasError) {
|
|
475
|
-
return <View style={styles.container}/>;
|
|
476
|
-
}
|
|
477
|
-
const { activeInsulin, recommendationModal, carbRecommendation: carbRecommendationProp, enteredCarbs, enteredInsulin, insulinRecommendation, activityReduction, isRecommendationDisplayed, } = this.state;
|
|
478
|
-
const { BloodGlucose: BGValueTestID, BloodKetone: BKValueTestID, ActiveInsulin: ActiveInsulinValueTestID, } = InfoBarTestIds.Value;
|
|
479
|
-
const { ActiveInsulin: ActiveInsulinUnitTestID, BloodGlucose: BGUnitTestID, BloodKetone: BKUnitTestID, } = InfoBarTestIds.Unit;
|
|
480
|
-
const carbRecommendation = carbRecommendationProp !== null ? Math.round(carbRecommendationProp) : null;
|
|
481
|
-
const recommendedCarbs = enteredCarbs ?? carbRecommendation;
|
|
482
|
-
const foodBorderColor = recommendedCarbs !== null && recommendedCarbs > 0 ? colors.teal : colors.dustyDarkBlue;
|
|
483
|
-
const { calculatorParams, bloodGlucoseUnit, currentBKL, bloodKetoneUnit } = this.props;
|
|
484
|
-
const { currentBGL, carbohydrates: providedCarbs } = calculatorParams;
|
|
485
|
-
const displayedBGL = currentBGL ? Utils.displayedBGLValue(currentBGL, bloodGlucoseUnit) : null;
|
|
486
|
-
const displayedBKL = currentBKL !== null && bloodKetoneUnit ? Utils.displayedBKLValue(currentBKL, bloodKetoneUnit) : null;
|
|
487
|
-
return (<>
|
|
488
|
-
<KeyboardAwareScrollView testID={RecommendationScreenTestIds.RecommendationScrollView} enableResetScrollToCoords={false} style={styles.container} ref={(view) => {
|
|
489
|
-
if (view !== null) {
|
|
490
|
-
this.scrollView = view;
|
|
491
|
-
}
|
|
492
|
-
}}>
|
|
493
|
-
<Text style={styles.header}>{t(`Insulin recommendation`)}</Text>
|
|
494
|
-
<InfoBars label={t(`Active Insulin`)} value={activeInsulin ? `${activeInsulin.toFixed(1)}` : null} unit={t(`units`)} showNullAsDash={false} testID={{ unitID: ActiveInsulinUnitTestID, valueID: ActiveInsulinValueTestID }}/>
|
|
495
|
-
<InfoBars label={t(`Blood Glucose Level`)} value={displayedBGL} unit={this.props.bloodGlucoseUnit} showNullAsDash={true} testID={{ unitID: BGUnitTestID, valueID: BGValueTestID }}/>
|
|
496
|
-
<InfoBars label={t(`Blood Ketone Level`)} value={displayedBKL} unit={this.props.bloodKetoneUnit} showNullAsDash={true} testID={{ unitID: BKUnitTestID, valueID: BKValueTestID }}/>
|
|
497
|
-
<View style={[styles.carbsBorder, { borderColor: foodBorderColor }]}>
|
|
498
|
-
<RecommendedCarbs enteredCarbs={`${providedCarbs}`} changedRecommendedCarbs={this.updateCarbRecommendation} recommendedCarbs={`${recommendedCarbs}`} removeRecommendedCarbs={this.removeCarbRecommendation}/>
|
|
499
|
-
</View>
|
|
500
|
-
{this.props.calculatorParams.activity && this.props.activityDisplayProps && (<Activity activity={this.props.calculatorParams.activity} activityType={this.props.activityDisplayProps.activityType} activityTitle={this.props.activityDisplayProps.activityTitle} activityReduction={activityReduction}/>)}
|
|
501
|
-
<Remeasure onSliderChange={this.updateRemeasureTime} remeasureTime={this.state.remeasureTime}/>
|
|
502
|
-
{!isRecommendationDisplayed ? (<RecentInsulin onRecentInsulinYes={this.props.onRecentInsulinYes} onRecentInsulinNo={this.handleNoRecentInsulin}/>) : (<RecommendedInsulin injectionMethod={this.props.injectionMethod} insulinRecommendation={insulinRecommendation} enteredInsulin={enteredInsulin} activityReduction={activityReduction} updateRecommendedInsulin={this.updateInsulinRecommendation}/>)}
|
|
503
|
-
<TransferToLogbook visible={isRecommendationDisplayed} transfer={this.handleTransfer}/>
|
|
504
|
-
<Emotion moodSelected={this.handleMoodSelected} currentMood={this.state.selectedMood}/>
|
|
505
|
-
<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}/>
|
|
506
|
-
</KeyboardAwareScrollView>
|
|
507
|
-
|
|
508
|
-
<ExitModal isVisible={this.state.showExitModal} title={t(`Save data before closing?`)} message={t(`Your saved data will be used for future calculations.`)} textFirstOption={t(`Save to logbook`)} textSecondOption={t(`Close calculation`)} firstOption={this.onPressTransferExitModal} secondOption={this.onPressCloseExitModal} onClose={this.onPressHideExitModal} onModalHide={this.onExitModalDidHide}/>
|
|
509
|
-
|
|
510
|
-
{isRecommendationDisplayed ? (<TimeoutModal isVisible={this.state.showTimeoutModal} title={Messages.TimeoutPrompTitle()} message={Messages.TimeoutRecommendationVisible(this.recommendationDate)} textFirstOption={t(`Yes, save to logbook`)} textSecondOption={t(`No, return to dashboard`)} firstOption={this.onPressTransferTimeoutModal} secondOption={this.onPressCloseCalculationTimeoutModal} onModalHide={this.onTimeoutModalDidHide}/>) : (<TimeoutModal isVisible={this.state.showTimeoutModal} title={Messages.TimeoutPrompTitle()} message={Messages.TimeoutRecommendationNotVisible()} textFirstOption={t(`Start new calculation`)} textSecondOption={t(`Return to dashboard`)} firstOption={this.onPressRestartCalculationTimeoutModal} secondOption={this.onPressCloseCalculationTimeoutModal} onModalHide={this.onTimeoutModalDidHide}/>)}
|
|
511
|
-
</>);
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
const styles = StyleSheet.create({
|
|
515
|
-
container: {
|
|
516
|
-
flex: 1,
|
|
517
|
-
paddingHorizontal: 18,
|
|
518
|
-
backgroundColor: colors.darkBlue,
|
|
519
|
-
},
|
|
520
|
-
limitationModalContainer: {
|
|
521
|
-
...StyleSheet.absoluteFillObject,
|
|
522
|
-
justifyContent: `center`,
|
|
523
|
-
backgroundColor: colors.transparentBlack,
|
|
524
|
-
},
|
|
525
|
-
carbsBorder: {
|
|
526
|
-
borderWidth: 1,
|
|
527
|
-
borderRadius: 5,
|
|
528
|
-
padding: 16,
|
|
529
|
-
},
|
|
530
|
-
header: {
|
|
531
|
-
...FONTS.Poppins.medium_Base,
|
|
532
|
-
color: colors.dustyBlue,
|
|
533
|
-
marginBottom: 22,
|
|
534
|
-
textAlign: `center`,
|
|
535
|
-
},
|
|
536
|
-
});
|
|
537
|
-
//# sourceMappingURL=RecommendationScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationScreen.js","sourceRoot":"","sources":["../../src/RecommendationScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { Path, Svg } from "react-native-svg";
|
|
3
|
-
const Edit = (props) => (<Svg viewBox="0 0 28 28" {...props}>
|
|
4
|
-
<Path d="M7.38159 23.5513H19.3863C21.3613 23.5513 22.5088 22.4038 22.5088 20.2053V9.31588L20.4885 11.3344V20.0358C20.4885 21.0368 19.9597 21.5328 19.2692 21.5328H7.50522C6.54726 21.5328 6.01851 21.0368 6.01851 20.0358V8.56645C6.01851 7.56357 6.54726 7.06099 7.50522 7.06099H16.3125L18.331 5.04248H7.38159C5.16442 5.04248 4 6.19001 4 8.38843V20.2053C4 22.4122 5.16442 23.5513 7.38159 23.5513Z" fill={props.color}/>
|
|
5
|
-
<Path d="M11.2728 16.6709L13.369 15.7841L22.7767 6.38479L21.2039 4.83072L11.8065 14.2281L10.8774 16.2653C10.7764 16.4979 11.0362 16.7664 11.2728 16.6709ZM23.5632 5.60673L24.2828 4.86842C24.6794 4.45487 24.6887 3.88987 24.2958 3.50907L24.0254 3.23213C23.6745 2.88493 23.0955 2.93912 22.711 3.31517L21.9904 4.02916L23.5632 5.60673Z" fill={props.color}/>
|
|
6
|
-
</Svg>);
|
|
7
|
-
export default Edit;
|
|
8
|
-
//# sourceMappingURL=Edit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Edit.js","sourceRoot":"","sources":["../../../../src/assets/IconsSVG/Edit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAY,MAAM,kBAAkB,CAAC;AAEvD,MAAM,IAAI,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CACjC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAClC;EAAA,CAAC,IAAI,CACJ,CAAC,CAAC,gYAAgY,CAClY,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAEnB;EAAA,CAAC,IAAI,CACJ,CAAC,CAAC,kUAAkU,CACpU,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAEpB;CAAA,EAAE,GAAG,CAAC,CACN,CAAC;AACF,eAAe,IAAI,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { Path, Svg } from "react-native-svg";
|
|
3
|
-
import { colors } from "../../../utils/Constants";
|
|
4
|
-
const Cycling = (props) => (<Svg viewBox="0 0 36 36" {...props}>
|
|
5
|
-
<Path fillRule="evenodd" clipRule="evenodd" d="M20.9522 17.2358C20.9522 17.2358 20.151 16.4868 19.4424 15.8242L16.6704 17.5983C17.6636 18.2939 18.6775 19.0039 18.6775 19.0039L17.7217 22.0713C17.609 22.4875 17.8058 22.9371 18.2017 23.1073C18.6572 23.3032 19.1689 23.0795 19.344 22.6332L21.3198 18.1898C21.4592 17.8246 21.2428 17.4976 20.9522 17.2358Z" fill={props?.color || colors.white}/>
|
|
6
|
-
<Path fillRule="evenodd" clipRule="evenodd" d="M10.1391 29.5254C7.56668 29.5254 5.47393 27.4316 5.47393 24.858C5.47393 22.2844 7.56668 20.1907 10.1391 20.1907C10.9765 20.1907 11.7624 20.4137 12.4424 20.8018L11.8447 18.9581C11.3029 18.8016 10.7311 18.7161 10.1391 18.7161C6.74858 18.7161 4 21.4659 4 24.858C4 28.2501 6.74858 31 10.1391 31C12.1072 31 13.8577 30.0723 14.9812 28.6314L14.3841 26.79C13.6483 28.4019 12.0229 29.5254 10.1391 29.5254Z" fill={props?.color || colors.white}/>
|
|
7
|
-
<Path fillRule="evenodd" clipRule="evenodd" d="M15.7955 16.9639L15.7908 16.9597L21.4056 13.2642L25.423 17.63C25.6355 17.8725 26.0005 17.9061 26.2537 17.7065C26.5009 17.5117 26.5579 17.1601 26.385 16.897L22.6745 11.2483C22.6625 11.2265 22.6507 11.2043 22.6367 11.1831L21.5974 9.60244C21.2766 9.11463 20.5708 9.00728 20.0291 9.36392L12.9124 14.031C12.9003 14.0388 12.8881 14.0466 12.8762 14.0546L12.8692 14.0593L12.869 14.0597C12.3978 14.3851 12.0889 14.9288 12.0889 15.5449C12.0889 15.6764 12.1033 15.8044 12.13 15.9279C12.1341 15.9487 12.1389 15.9696 12.1444 15.9908C12.1459 15.9964 12.1475 16.0018 12.149 16.0073C12.1514 16.0162 12.1534 16.025 12.1561 16.0339L12.1594 16.044C12.1716 16.0868 12.185 16.1289 12.2003 16.1701L16.3155 28.8537C16.4542 29.3063 16.9326 29.5613 17.3854 29.4242C17.8059 29.297 18.0627 28.8727 17.9805 28.4409L15.7955 16.9639Z" fill={props?.color || colors.white}/>
|
|
8
|
-
<Path fillRule="evenodd" clipRule="evenodd" d="M25.8609 29.437C23.2885 29.437 21.1958 27.3433 21.1958 24.7696C21.1958 22.196 23.2885 20.1023 25.8609 20.1023C28.4333 20.1023 30.5261 22.196 30.5261 24.7696C30.5261 27.3433 28.4333 29.437 25.8609 29.437ZM25.8607 18.6277C22.4703 18.6277 19.7217 21.3775 19.7217 24.7697C19.7217 28.1618 22.4703 30.9117 25.8607 30.9117C29.2513 30.9117 31.9999 28.1618 31.9999 24.7697C31.9999 21.3775 29.2513 18.6277 25.8607 18.6277Z" fill={props?.color || colors.white}/>
|
|
9
|
-
<Path fillRule="evenodd" clipRule="evenodd" d="M24.9569 7.33472H24.957C25.2918 7.33472 25.599 7.45534 25.8221 7.67418C26.0381 7.88638 26.1572 8.17511 26.1571 8.48721C26.157 9.14542 25.6324 9.66168 24.9647 9.66264H24.9608C24.6339 9.66264 24.3316 9.54143 24.1093 9.32119C23.8906 9.10457 23.7701 8.81156 23.7701 8.49621C23.7701 7.82334 24.2691 7.33486 24.9569 7.33472ZM24.9607 10.9972H24.9646C26.3696 10.9951 27.4906 9.88137 27.4909 8.48741C27.4912 7.09469 26.3758 5.99993 24.9567 6H24.9563C23.5335 6.00022 22.436 7.08724 22.436 8.49611C22.436 9.89052 23.5535 10.9972 24.9607 10.9972Z" fill={props?.color || colors.white}/>
|
|
10
|
-
</Svg>);
|
|
11
|
-
export default Cycling;
|
|
12
|
-
//# sourceMappingURL=Cycling.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Cycling.js","sourceRoot":"","sources":["../../../../../src/assets/IconsSVG/activity/Cycling.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,0BAA0B,CAAC;AAElD,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,CACrC,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,gTAAgT,CAClT,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAEpC;EAAA,CAAC,IAAI,CACJ,QAAQ,CAAC,SAAS,CAClB,QAAQ,CAAC,SAAS,CAClB,CAAC,CAAC,8YAA8Y,CAChZ,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAEpC;EAAA,CAAC,IAAI,CACJ,QAAQ,CAAC,SAAS,CAClB,QAAQ,CAAC,SAAS,CAClB,CAAC,CAAC,qyBAAqyB,CACvyB,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAEpC;EAAA,CAAC,IAAI,CACJ,QAAQ,CAAC,SAAS,CAClB,QAAQ,CAAC,SAAS,CAClB,CAAC,CAAC,8ZAA8Z,CACha,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAEpC;EAAA,CAAC,IAAI,CACJ,QAAQ,CAAC,SAAS,CAClB,QAAQ,CAAC,SAAS,CAClB,CAAC,CAAC,whBAAwhB,CAC1hB,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAErC;CAAA,EAAE,GAAG,CAAC,CACN,CAAC;AAEF,eAAe,OAAO,CAAC"}
|