@abihealth/goapp-react-native 1.13.4
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/CHANGELOG.md +157 -0
- package/README.md +3 -0
- package/dist/common/animations/Animation.d.ts +10 -0
- package/dist/common/animations/Animation.js +38 -0
- package/dist/common/animations/FindingAnimation/index.d.ts +2 -0
- package/dist/common/animations/FindingAnimation/index.js +20 -0
- package/dist/common/animations/FindingAnimation/xml.d.ts +2 -0
- package/dist/common/animations/FindingAnimation/xml.js +7 -0
- package/dist/common/animations/HorizontalLoadingAnimation/index.d.ts +5 -0
- package/dist/common/animations/HorizontalLoadingAnimation/index.js +14 -0
- package/dist/common/animations/HorizontalLoadingAnimation/xml.d.ts +1 -0
- package/dist/common/animations/HorizontalLoadingAnimation/xml.js +5 -0
- package/dist/common/animations/LoadingCircleAnimation/index.d.ts +2 -0
- package/dist/common/animations/LoadingCircleAnimation/index.js +24 -0
- package/dist/common/animations/LoadingCircleAnimation/xml.d.ts +2 -0
- package/dist/common/animations/LoadingCircleAnimation/xml.js +5 -0
- package/dist/common/animations/LoadingDotsAnimation/index.d.ts +6 -0
- package/dist/common/animations/LoadingDotsAnimation/index.js +17 -0
- package/dist/common/animations/LoadingDotsAnimation/xml.d.ts +1 -0
- package/dist/common/animations/LoadingDotsAnimation/xml.js +5 -0
- package/dist/common/animations/LoadingHeart.d.ts +2 -0
- package/dist/common/animations/LoadingHeart.js +92 -0
- package/dist/common/api/auth.d.ts +2 -0
- package/dist/common/api/auth.js +18 -0
- package/dist/common/api/config.d.ts +7 -0
- package/dist/common/api/config.js +15 -0
- package/dist/common/api/consultation.d.ts +6 -0
- package/dist/common/api/consultation.js +80 -0
- package/dist/common/api/models/auth.d.ts +8 -0
- package/dist/common/api/models/auth.js +2 -0
- package/dist/common/api/models/consultation.d.ts +70 -0
- package/dist/common/api/models/consultation.js +23 -0
- package/dist/common/api/models/region.d.ts +1 -0
- package/dist/common/api/models/region.js +2 -0
- package/dist/common/api/models/user.d.ts +5 -0
- package/dist/common/api/models/user.js +2 -0
- package/dist/common/api/models/websocket.d.ts +6 -0
- package/dist/common/api/models/websocket.js +2 -0
- package/dist/common/api/user.d.ts +2 -0
- package/dist/common/api/user.js +10 -0
- package/dist/common/api/websocket.d.ts +6 -0
- package/dist/common/api/websocket.js +66 -0
- package/dist/common/assets/background-pattern.png +0 -0
- package/dist/common/components/ActionSheet.d.ts +6 -0
- package/dist/common/components/ActionSheet.js +43 -0
- package/dist/common/components/AnswerScreen/Card.d.ts +8 -0
- package/dist/common/components/AnswerScreen/Card.js +76 -0
- package/dist/common/components/AnswerScreen/CloseConsultationActionSheet.d.ts +2 -0
- package/dist/common/components/AnswerScreen/CloseConsultationActionSheet.js +109 -0
- package/dist/common/components/AnswerScreen/DeliveryAddressCard.d.ts +5 -0
- package/dist/common/components/AnswerScreen/DeliveryAddressCard.js +39 -0
- package/dist/common/components/AnswerScreen/PrescriptionCard/PrescriptionCardHeader.d.ts +5 -0
- package/dist/common/components/AnswerScreen/PrescriptionCard/PrescriptionCardHeader.js +79 -0
- package/dist/common/components/AnswerScreen/PrescriptionCard/index.d.ts +5 -0
- package/dist/common/components/AnswerScreen/PrescriptionCard/index.js +46 -0
- package/dist/common/components/AnswerScreen/Summary.d.ts +5 -0
- package/dist/common/components/AnswerScreen/Summary.js +49 -0
- package/dist/common/components/BackgroundPattern.d.ts +2 -0
- package/dist/common/components/BackgroundPattern.js +19 -0
- package/dist/common/components/Button.d.ts +14 -0
- package/dist/common/components/Button.js +124 -0
- package/dist/common/components/CancelConsultationButton.d.ts +2 -0
- package/dist/common/components/CancelConsultationButton.js +107 -0
- package/dist/common/components/Card.d.ts +2 -0
- package/dist/common/components/Card.js +13 -0
- package/dist/common/components/Checkbox.d.ts +7 -0
- package/dist/common/components/Checkbox.js +75 -0
- package/dist/common/components/DateInput.d.ts +8 -0
- package/dist/common/components/DateInput.js +76 -0
- package/dist/common/components/DoctorProfileCard.d.ts +8 -0
- package/dist/common/components/DoctorProfileCard.js +128 -0
- package/dist/common/components/FadeIn.d.ts +8 -0
- package/dist/common/components/FadeIn.js +66 -0
- package/dist/common/components/FormControl.d.ts +8 -0
- package/dist/common/components/FormControl.js +40 -0
- package/dist/common/components/FormWrapper.d.ts +11 -0
- package/dist/common/components/FormWrapper.js +46 -0
- package/dist/common/components/Header.d.ts +10 -0
- package/dist/common/components/Header.js +109 -0
- package/dist/common/components/Input.d.ts +8 -0
- package/dist/common/components/Input.js +74 -0
- package/dist/common/components/Modal/AttachmentPreviewModal.d.ts +9 -0
- package/dist/common/components/Modal/AttachmentPreviewModal.js +68 -0
- package/dist/common/components/Modal/CancelModal.d.ts +9 -0
- package/dist/common/components/Modal/CancelModal.js +16 -0
- package/dist/common/components/Modal/CloseConsultationModal.d.ts +9 -0
- package/dist/common/components/Modal/CloseConsultationModal.js +16 -0
- package/dist/common/components/Modal/DoctorProfileModal.d.ts +8 -0
- package/dist/common/components/Modal/DoctorProfileModal.js +47 -0
- package/dist/common/components/Modal/ModalHeader.d.ts +7 -0
- package/dist/common/components/Modal/ModalHeader.js +40 -0
- package/dist/common/components/Modal/TwoOptionsModal.d.ts +14 -0
- package/dist/common/components/Modal/TwoOptionsModal.js +58 -0
- package/dist/common/components/Modal/index.d.ts +7 -0
- package/dist/common/components/Modal/index.js +57 -0
- package/dist/common/components/PhoneInput.d.ts +11 -0
- package/dist/common/components/PhoneInput.js +81 -0
- package/dist/common/components/Reminder.d.ts +7 -0
- package/dist/common/components/Reminder.js +214 -0
- package/dist/common/components/ScreenWrapper.d.ts +12 -0
- package/dist/common/components/ScreenWrapper.js +46 -0
- package/dist/common/components/Select.d.ts +17 -0
- package/dist/common/components/Select.js +132 -0
- package/dist/common/components/Slide.d.ts +13 -0
- package/dist/common/components/Slide.js +83 -0
- package/dist/common/components/SlideUp.d.ts +8 -0
- package/dist/common/components/SlideUp.js +69 -0
- package/dist/common/components/Text.d.ts +22 -0
- package/dist/common/components/Text.js +130 -0
- package/dist/common/contexts/ConsultationContext.d.ts +22 -0
- package/dist/common/contexts/ConsultationContext.js +215 -0
- package/dist/common/contexts/FormContext.d.ts +25 -0
- package/dist/common/contexts/FormContext.js +55 -0
- package/dist/common/contexts/ThemeContext.d.ts +13 -0
- package/dist/common/contexts/ThemeContext.js +18 -0
- package/dist/common/hooks/useConsultation.d.ts +13 -0
- package/dist/common/hooks/useConsultation.js +166 -0
- package/dist/common/hooks/useForm.d.ts +10 -0
- package/dist/common/hooks/useForm.js +107 -0
- package/dist/common/hooks/useHeader.d.ts +4 -0
- package/dist/common/hooks/useHeader.js +10 -0
- package/dist/common/hooks/useTheme.d.ts +2 -0
- package/dist/common/hooks/useTheme.js +26 -0
- package/dist/common/hooks/useUser.d.ts +4 -0
- package/dist/common/hooks/useUser.js +10 -0
- package/dist/common/icons/AbiLogoIcon.d.ts +2 -0
- package/dist/common/icons/AbiLogoIcon.js +53 -0
- package/dist/common/icons/BackArrowIcon.d.ts +2 -0
- package/dist/common/icons/BackArrowIcon.js +49 -0
- package/dist/common/icons/CalendarIcon.d.ts +3 -0
- package/dist/common/icons/CalendarIcon.js +43 -0
- package/dist/common/icons/CheckSuccessIcon.d.ts +3 -0
- package/dist/common/icons/CheckSuccessIcon.js +47 -0
- package/dist/common/icons/CloseIcon.d.ts +5 -0
- package/dist/common/icons/CloseIcon.js +51 -0
- package/dist/common/icons/DoctorIcon.d.ts +3 -0
- package/dist/common/icons/DoctorIcon.js +48 -0
- package/dist/common/icons/DoctorImagePlaceholderIcon.d.ts +5 -0
- package/dist/common/icons/DoctorImagePlaceholderIcon.js +64 -0
- package/dist/common/icons/DropdownIcon.d.ts +3 -0
- package/dist/common/icons/DropdownIcon.js +41 -0
- package/dist/common/icons/ExitIcon.d.ts +2 -0
- package/dist/common/icons/ExitIcon.js +58 -0
- package/dist/common/icons/InfoIcon.d.ts +2 -0
- package/dist/common/icons/InfoIcon.js +49 -0
- package/dist/common/icons/KoCircleIcon.d.ts +3 -0
- package/dist/common/icons/KoCircleIcon.js +42 -0
- package/dist/common/icons/MotorbikeIcon.d.ts +2 -0
- package/dist/common/icons/MotorbikeIcon.js +65 -0
- package/dist/common/icons/NoCaseFoundIcon.d.ts +3 -0
- package/dist/common/icons/NoCaseFoundIcon.js +55 -0
- package/dist/common/icons/PdfDownloadIcon.d.ts +2 -0
- package/dist/common/icons/PdfDownloadIcon.js +58 -0
- package/dist/common/icons/PdfIcon.d.ts +2 -0
- package/dist/common/icons/PdfIcon.js +50 -0
- package/dist/common/icons/PersonIcon.d.ts +3 -0
- package/dist/common/icons/PersonIcon.js +45 -0
- package/dist/common/icons/PillsIcon.d.ts +2 -0
- package/dist/common/icons/PillsIcon.js +52 -0
- package/dist/common/icons/PlaneIcon.d.ts +5 -0
- package/dist/common/icons/PlaneIcon.js +48 -0
- package/dist/common/icons/RatingIcon.d.ts +2 -0
- package/dist/common/icons/RatingIcon.js +53 -0
- package/dist/common/icons/StarIcon.d.ts +4 -0
- package/dist/common/icons/StarIcon.js +57 -0
- package/dist/common/icons/TextConsultationIcon.d.ts +4 -0
- package/dist/common/icons/TextConsultationIcon.js +53 -0
- package/dist/common/icons/TrashIcon.d.ts +2 -0
- package/dist/common/icons/TrashIcon.js +49 -0
- package/dist/common/icons/VideoConsultationIcon.d.ts +4 -0
- package/dist/common/icons/VideoConsultationIcon.js +50 -0
- package/dist/common/index.d.ts +57 -0
- package/dist/common/index.js +114 -0
- package/dist/common/locale/i18n.d.ts +5 -0
- package/dist/common/locale/i18n.js +79 -0
- package/dist/common/locale/translations/ar-AE.base.json +604 -0
- package/dist/common/locale/translations/ar-LB.base.json +604 -0
- package/dist/common/locale/translations/bg.base.json +488 -0
- package/dist/common/locale/translations/cs.base.json +499 -0
- package/dist/common/locale/translations/en.base.json +923 -0
- package/dist/common/locale/translations/es-MX.base.json +827 -0
- package/dist/common/locale/translations/es.base.json +827 -0
- package/dist/common/locale/translations/fr.base.json +605 -0
- package/dist/common/locale/translations/hu.base.json +488 -0
- package/dist/common/locale/translations/pl.base.json +487 -0
- package/dist/common/locale/translations/ro.base.json +501 -0
- package/dist/common/locale/translations/ru.base.json +603 -0
- package/dist/common/locale/translations/sk.base.json +535 -0
- package/dist/common/locale/translations/zh-HK.base.json +349 -0
- package/dist/common/locale/translations/zh-SG.base.json +603 -0
- package/dist/common/locale/translations/zh-TW.base.json +873 -0
- package/dist/common/screens/AnswerScreen.d.ts +11 -0
- package/dist/common/screens/AnswerScreen.js +101 -0
- package/dist/common/screens/MatchScreen.d.ts +5 -0
- package/dist/common/screens/MatchScreen.js +36 -0
- package/dist/common/screens/MatchingScreen.d.ts +2 -0
- package/dist/common/screens/MatchingScreen.js +41 -0
- package/dist/common/screens/NoConsultationFoundScreen.d.ts +2 -0
- package/dist/common/screens/NoConsultationFoundScreen.js +34 -0
- package/dist/common/screens/PreparingSummaryScreen.d.ts +5 -0
- package/dist/common/screens/PreparingSummaryScreen.js +35 -0
- package/dist/common/screens/RatingScreen.d.ts +2 -0
- package/dist/common/screens/RatingScreen.js +198 -0
- package/dist/common/screens/index.d.ts +3 -0
- package/dist/common/screens/index.js +29 -0
- package/dist/common/types/consultation.d.ts +93 -0
- package/dist/common/types/consultation.js +41 -0
- package/dist/common/types/deliveryAddress.d.ts +18 -0
- package/dist/common/types/deliveryAddress.js +11 -0
- package/dist/common/types/events.d.ts +13 -0
- package/dist/common/types/events.js +15 -0
- package/dist/common/types/prescription.d.ts +52 -0
- package/dist/common/types/prescription.js +31 -0
- package/dist/common/types/professional.d.ts +14 -0
- package/dist/common/types/professional.js +2 -0
- package/dist/common/types/theme.d.ts +82 -0
- package/dist/common/types/theme.js +58 -0
- package/dist/common/types/user.d.ts +10 -0
- package/dist/common/types/user.js +2 -0
- package/dist/common/utils/platform.d.ts +3 -0
- package/dist/common/utils/platform.js +7 -0
- package/dist/common/utils/professional.d.ts +2 -0
- package/dist/common/utils/professional.js +12 -0
- package/dist/common/utils/zod.d.ts +5 -0
- package/dist/common/utils/zod.js +19 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.js +133 -0
- package/dist/video-consultations/animations/CallingAnimation/index.d.ts +2 -0
- package/dist/video-consultations/animations/CallingAnimation/index.js +17 -0
- package/dist/video-consultations/animations/CallingAnimation/xml.d.ts +2 -0
- package/dist/video-consultations/animations/CallingAnimation/xml.js +5 -0
- package/dist/video-consultations/api/models/video.d.ts +10 -0
- package/dist/video-consultations/api/models/video.js +2 -0
- package/dist/video-consultations/api/video.d.ts +3 -0
- package/dist/video-consultations/api/video.js +12 -0
- package/dist/video-consultations/components/AgoraWrapper/components/BaseRenderUsers.d.ts +12 -0
- package/dist/video-consultations/components/AgoraWrapper/components/BaseRenderUsers.js +174 -0
- package/dist/video-consultations/components/AgoraWrapper/components/BtnControls.d.ts +14 -0
- package/dist/video-consultations/components/AgoraWrapper/components/BtnControls.js +55 -0
- package/dist/video-consultations/components/AgoraWrapper/components/ui/index.d.ts +14 -0
- package/dist/video-consultations/components/AgoraWrapper/components/ui/index.js +100 -0
- package/dist/video-consultations/components/AgoraWrapper/index.d.ts +8 -0
- package/dist/video-consultations/components/AgoraWrapper/index.js +173 -0
- package/dist/video-consultations/components/Modal/EndVideoCallModal.d.ts +8 -0
- package/dist/video-consultations/components/Modal/EndVideoCallModal.js +15 -0
- package/dist/video-consultations/components/VideoConsultation.d.ts +7 -0
- package/dist/video-consultations/components/VideoConsultation.js +42 -0
- package/dist/video-consultations/helpers/eventHandler.d.ts +14 -0
- package/dist/video-consultations/helpers/eventHandler.js +61 -0
- package/dist/video-consultations/hooks/useInitRtcEngine.d.ts +15 -0
- package/dist/video-consultations/hooks/useInitRtcEngine.js +194 -0
- package/dist/video-consultations/icons/EndVideoCallIcon.d.ts +2 -0
- package/dist/video-consultations/icons/EndVideoCallIcon.js +51 -0
- package/dist/video-consultations/icons/HangUpIcon.d.ts +3 -0
- package/dist/video-consultations/icons/HangUpIcon.js +41 -0
- package/dist/video-consultations/icons/MicroOffIcon.d.ts +7 -0
- package/dist/video-consultations/icons/MicroOffIcon.js +47 -0
- package/dist/video-consultations/icons/MicroOnIcon.d.ts +3 -0
- package/dist/video-consultations/icons/MicroOnIcon.js +42 -0
- package/dist/video-consultations/icons/PersonIcon.d.ts +3 -0
- package/dist/video-consultations/icons/PersonIcon.js +45 -0
- package/dist/video-consultations/icons/SwitchCameraIcon.d.ts +3 -0
- package/dist/video-consultations/icons/SwitchCameraIcon.js +41 -0
- package/dist/video-consultations/icons/VideoOffIcon.d.ts +5 -0
- package/dist/video-consultations/icons/VideoOffIcon.js +44 -0
- package/dist/video-consultations/icons/VideoOnIcon.d.ts +3 -0
- package/dist/video-consultations/icons/VideoOnIcon.js +41 -0
- package/dist/video-consultations/index.d.ts +10 -0
- package/dist/video-consultations/index.js +24 -0
- package/dist/video-consultations/screens/DeliveryAddressScreen.d.ts +2 -0
- package/dist/video-consultations/screens/DeliveryAddressScreen.js +84 -0
- package/dist/video-consultations/screens/EndingVideoScreen.d.ts +5 -0
- package/dist/video-consultations/screens/EndingVideoScreen.js +27 -0
- package/dist/video-consultations/screens/JoinVideoCallScreen.d.ts +5 -0
- package/dist/video-consultations/screens/JoinVideoCallScreen.js +108 -0
- package/dist/video-consultations/screens/ProcessingPrescriptionScreen.d.ts +2 -0
- package/dist/video-consultations/screens/ProcessingPrescriptionScreen.js +32 -0
- package/dist/video-consultations/screens/VideoCallScreen.d.ts +3 -0
- package/dist/video-consultations/screens/VideoCallScreen.js +77 -0
- package/dist/video-consultations/utils/permission.d.ts +14 -0
- package/dist/video-consultations/utils/permission.js +97 -0
- package/package.json +58 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DateInput = void 0;
|
|
7
|
+
var react_1 = require("react");
|
|
8
|
+
var react_native_1 = require("react-native");
|
|
9
|
+
var react_native_date_picker_1 = __importDefault(require("react-native-date-picker"));
|
|
10
|
+
var useForm_1 = require("../hooks/useForm");
|
|
11
|
+
var useTheme_1 = require("../hooks/useTheme");
|
|
12
|
+
var CalendarIcon_1 = __importDefault(require("../icons/CalendarIcon"));
|
|
13
|
+
var FormControl_1 = __importDefault(require("./FormControl"));
|
|
14
|
+
var DateInput = function (_a) {
|
|
15
|
+
var _b;
|
|
16
|
+
var id = _a.id, label = _a.label, error = _a.error, initialValue = _a.initialValue, onConfirm = _a.onConfirm;
|
|
17
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
18
|
+
var styles = getStyles(theme);
|
|
19
|
+
var _c = (0, useForm_1.useForm)(), errors = _c.errors, data = _c.data, clearError = _c.clearError, updateData = _c.updateData, loading = _c.loading;
|
|
20
|
+
var _d = (0, react_1.useState)(false), open = _d[0], setOpen = _d[1];
|
|
21
|
+
var initialDate = (0, react_1.useMemo)(function () { return (data === null || data === void 0 ? void 0 : data[id]) || initialValue; }, []);
|
|
22
|
+
var onFocus = function () {
|
|
23
|
+
if (loading)
|
|
24
|
+
return;
|
|
25
|
+
setOpen(true);
|
|
26
|
+
clearError === null || clearError === void 0 ? void 0 : clearError(id);
|
|
27
|
+
};
|
|
28
|
+
(0, react_1.useEffect)(function () {
|
|
29
|
+
updateData === null || updateData === void 0 ? void 0 : updateData(id)(initialDate);
|
|
30
|
+
}, [initialDate]);
|
|
31
|
+
var formError = errors === null || errors === void 0 ? void 0 : errors[id];
|
|
32
|
+
var formValue = (_b = data === null || data === void 0 ? void 0 : data[id]) === null || _b === void 0 ? void 0 : _b.toLocaleDateString();
|
|
33
|
+
var err = formError || error;
|
|
34
|
+
return (<FormControl_1.default label={label} error={err}>
|
|
35
|
+
<react_native_1.View style={[styles.inputContainer, err && styles.error]}>
|
|
36
|
+
<react_native_1.TextInput style={styles.input} value={formValue || (initialDate === null || initialDate === void 0 ? void 0 : initialDate.toLocaleDateString())} onFocus={onFocus} placeholder="dd/mm/yyyy" editable={!loading} placeholderTextColor={theme.colors.gray}/>
|
|
37
|
+
|
|
38
|
+
<react_native_1.Pressable onPress={onFocus}>
|
|
39
|
+
<CalendarIcon_1.default />
|
|
40
|
+
</react_native_1.Pressable>
|
|
41
|
+
</react_native_1.View>
|
|
42
|
+
|
|
43
|
+
<react_native_date_picker_1.default modal open={open} date={initialDate || new Date()} onConfirm={function (date) {
|
|
44
|
+
setOpen(false);
|
|
45
|
+
onConfirm(date);
|
|
46
|
+
updateData === null || updateData === void 0 ? void 0 : updateData(id)(date);
|
|
47
|
+
}} onCancel={function () {
|
|
48
|
+
setOpen(false);
|
|
49
|
+
}}/>
|
|
50
|
+
</FormControl_1.default>);
|
|
51
|
+
};
|
|
52
|
+
exports.DateInput = DateInput;
|
|
53
|
+
exports.default = exports.DateInput;
|
|
54
|
+
var getStyles = function (_a) {
|
|
55
|
+
var spacing = _a.spacing, colors = _a.colors, borderRadius = _a.borderRadius, fontSize = _a.fontSize;
|
|
56
|
+
return react_native_1.StyleSheet.create({
|
|
57
|
+
inputContainer: {
|
|
58
|
+
flexDirection: 'row',
|
|
59
|
+
justifyContent: 'space-between',
|
|
60
|
+
padding: spacing.sm,
|
|
61
|
+
borderWidth: 1,
|
|
62
|
+
borderColor: colors.gray,
|
|
63
|
+
borderRadius: borderRadius.md,
|
|
64
|
+
width: '100%',
|
|
65
|
+
backgroundColor: colors.white
|
|
66
|
+
},
|
|
67
|
+
input: {
|
|
68
|
+
color: colors.black,
|
|
69
|
+
fontSize: fontSize.base,
|
|
70
|
+
minWidth: '80%'
|
|
71
|
+
},
|
|
72
|
+
error: {
|
|
73
|
+
borderColor: colors.warning
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Professional } from '../types/professional';
|
|
3
|
+
interface DoctorProfileCardProps {
|
|
4
|
+
professional: Professional;
|
|
5
|
+
description: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const DoctorProfileCard: ({ professional, description }: DoctorProfileCardProps) => React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.DoctorProfileCard = void 0;
|
|
48
|
+
var react_1 = __importStar(require("react"));
|
|
49
|
+
var react_i18next_1 = require("react-i18next");
|
|
50
|
+
var react_native_1 = require("react-native");
|
|
51
|
+
var LoadingDotsAnimation_1 = require("../animations/LoadingDotsAnimation");
|
|
52
|
+
var useTheme_1 = require("../hooks/useTheme");
|
|
53
|
+
var DoctorImagePlaceholderIcon_1 = require("../icons/DoctorImagePlaceholderIcon");
|
|
54
|
+
var professional_1 = require("../utils/professional");
|
|
55
|
+
var Button_1 = require("./Button");
|
|
56
|
+
var DoctorProfileModal_1 = require("./Modal/DoctorProfileModal");
|
|
57
|
+
var Text_1 = require("./Text");
|
|
58
|
+
var DoctorProfileCard = function (_a) {
|
|
59
|
+
var professional = _a.professional, description = _a.description;
|
|
60
|
+
var t = (0, react_i18next_1.useTranslation)().t;
|
|
61
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
62
|
+
var styles = getStyles(theme);
|
|
63
|
+
var _b = (0, react_1.useState)(false), showProfileModal = _b[0], setShowProfileModal = _b[1];
|
|
64
|
+
var showModal = function () { return setShowProfileModal(true); };
|
|
65
|
+
var hideModal = function () { return setShowProfileModal(false); };
|
|
66
|
+
if (!professional)
|
|
67
|
+
return <Text_1.Text>Professional not found</Text_1.Text>;
|
|
68
|
+
return (<react_native_1.View style={styles.container}>
|
|
69
|
+
{professional.profileImage ? (<react_native_1.Image source={{ uri: professional.profileImage }} style={styles.image}/>) : (<DoctorImagePlaceholderIcon_1.DoctorImagePlaceholderIcon style={styles.image}/>)}
|
|
70
|
+
|
|
71
|
+
<react_native_1.View style={{ alignItems: 'center' }}>
|
|
72
|
+
<Text_1.Text variant="h2">{(0, professional_1.getProfessionalLabel)(professional)}</Text_1.Text>
|
|
73
|
+
<Text_1.Text style={styles.status} center>
|
|
74
|
+
{description}
|
|
75
|
+
</Text_1.Text>
|
|
76
|
+
</react_native_1.View>
|
|
77
|
+
|
|
78
|
+
<LoadingDotsAnimation_1.LoadingDotsAnimation color={theme.colors.primaryDark} size={64}/>
|
|
79
|
+
|
|
80
|
+
<react_native_1.View style={styles.specialtiesContainer}>
|
|
81
|
+
{professional.specialties.map(function (specialty, index) { return (<react_native_1.View key={index} style={styles.specialty}>
|
|
82
|
+
<Text_1.Text>{t("specialty_".concat(specialty))}</Text_1.Text>
|
|
83
|
+
</react_native_1.View>); })}
|
|
84
|
+
</react_native_1.View>
|
|
85
|
+
|
|
86
|
+
{professional.profileUrl && (<Button_1.Button variant="secondary" shadow={false} onPress={showModal} style={styles.button}>
|
|
87
|
+
{t('view_profile')}
|
|
88
|
+
</Button_1.Button>)}
|
|
89
|
+
|
|
90
|
+
<DoctorProfileModal_1.DoctorProfileModal profileUrl={professional.profileUrl} visible={showProfileModal} onCancel={hideModal}/>
|
|
91
|
+
</react_native_1.View>);
|
|
92
|
+
};
|
|
93
|
+
exports.DoctorProfileCard = DoctorProfileCard;
|
|
94
|
+
var getStyles = function (_a) {
|
|
95
|
+
var colors = _a.colors, spacing = _a.spacing, borderRadius = _a.borderRadius, shadows = _a.shadows;
|
|
96
|
+
return react_native_1.StyleSheet.create({
|
|
97
|
+
container: __assign({ width: '100%', backgroundColor: colors.white, borderRadius: borderRadius.xl, padding: spacing.sm, alignItems: 'center', rowGap: spacing.sm }, shadows.soft),
|
|
98
|
+
image: {
|
|
99
|
+
width: 100,
|
|
100
|
+
height: 100,
|
|
101
|
+
borderRadius: borderRadius.full
|
|
102
|
+
},
|
|
103
|
+
status: {
|
|
104
|
+
maxWidth: '80%'
|
|
105
|
+
},
|
|
106
|
+
specialtiesContainer: {
|
|
107
|
+
flexDirection: 'row',
|
|
108
|
+
columnGap: spacing.xs,
|
|
109
|
+
rowGap: spacing.xs,
|
|
110
|
+
flexWrap: 'wrap',
|
|
111
|
+
justifyContent: 'center'
|
|
112
|
+
},
|
|
113
|
+
specialty: {
|
|
114
|
+
paddingVertical: spacing.xs,
|
|
115
|
+
paddingHorizontal: spacing.sm,
|
|
116
|
+
borderRadius: borderRadius.full,
|
|
117
|
+
backgroundColor: colors.background
|
|
118
|
+
},
|
|
119
|
+
button: {
|
|
120
|
+
borderTopColor: colors.divider,
|
|
121
|
+
borderTopWidth: 1,
|
|
122
|
+
paddingTop: spacing.md,
|
|
123
|
+
paddingBottom: spacing.sm - 8, // Hack for centering the button
|
|
124
|
+
width: '100%',
|
|
125
|
+
alignItems: 'center'
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
interface FadeInProps {
|
|
4
|
+
style?: StyleProp<ViewStyle>;
|
|
5
|
+
duration?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const FadeIn: ({ children, style, duration }: PropsWithChildren<FadeInProps>) => React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FadeIn = void 0;
|
|
37
|
+
var react_1 = __importStar(require("react"));
|
|
38
|
+
var react_native_1 = require("react-native");
|
|
39
|
+
var DEFAULT_DURATION = 250;
|
|
40
|
+
var FadeIn = function (_a) {
|
|
41
|
+
var children = _a.children, style = _a.style, _b = _a.duration, duration = _b === void 0 ? DEFAULT_DURATION : _b;
|
|
42
|
+
var fadeAnim = (0, react_native_1.useAnimatedValue)(0);
|
|
43
|
+
(0, react_1.useEffect)(function () {
|
|
44
|
+
fadeAnim.setValue(0);
|
|
45
|
+
react_native_1.Animated.timing(fadeAnim, {
|
|
46
|
+
toValue: 1,
|
|
47
|
+
duration: duration,
|
|
48
|
+
useNativeDriver: true
|
|
49
|
+
}).start();
|
|
50
|
+
}, [fadeAnim, duration]);
|
|
51
|
+
return (<react_native_1.Animated.View style={[
|
|
52
|
+
styles.wrapper,
|
|
53
|
+
{
|
|
54
|
+
opacity: fadeAnim
|
|
55
|
+
},
|
|
56
|
+
style
|
|
57
|
+
]}>
|
|
58
|
+
{children}
|
|
59
|
+
</react_native_1.Animated.View>);
|
|
60
|
+
};
|
|
61
|
+
exports.FadeIn = FadeIn;
|
|
62
|
+
var styles = react_native_1.StyleSheet.create({
|
|
63
|
+
wrapper: {
|
|
64
|
+
width: '100%'
|
|
65
|
+
}
|
|
66
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
export interface FormControlProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const FormControl: ({ label, error, name, children }: PropsWithChildren<FormControlProps>) => import("react").JSX.Element;
|
|
8
|
+
export default FormControl;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormControl = void 0;
|
|
4
|
+
var react_native_1 = require("react-native");
|
|
5
|
+
var useTheme_1 = require("../hooks/useTheme");
|
|
6
|
+
var Text_1 = require("./Text");
|
|
7
|
+
var FormControl = function (_a) {
|
|
8
|
+
var label = _a.label, error = _a.error, name = _a.name, children = _a.children;
|
|
9
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
10
|
+
var styles = getStyles(theme);
|
|
11
|
+
return (<react_native_1.View style={styles.formControl}>
|
|
12
|
+
{label && (<Text_1.Text style={styles.label} nativeID={name}>
|
|
13
|
+
{label}
|
|
14
|
+
</Text_1.Text>)}
|
|
15
|
+
{children}
|
|
16
|
+
<Text_1.Text variant="sm" color={theme.colors.warning} style={styles.error}>
|
|
17
|
+
{error}
|
|
18
|
+
</Text_1.Text>
|
|
19
|
+
</react_native_1.View>);
|
|
20
|
+
};
|
|
21
|
+
exports.FormControl = FormControl;
|
|
22
|
+
exports.default = exports.FormControl;
|
|
23
|
+
var getStyles = function (_a) {
|
|
24
|
+
var spacing = _a.spacing, colors = _a.colors, fontSize = _a.fontSize, lineHeight = _a.lineHeight;
|
|
25
|
+
return react_native_1.StyleSheet.create({
|
|
26
|
+
formControl: {
|
|
27
|
+
rowGap: spacing.xxs,
|
|
28
|
+
width: '100%'
|
|
29
|
+
},
|
|
30
|
+
label: {
|
|
31
|
+
color: colors.black,
|
|
32
|
+
fontSize: fontSize.sm,
|
|
33
|
+
lineHeight: lineHeight.sm,
|
|
34
|
+
fontWeight: 'bold'
|
|
35
|
+
},
|
|
36
|
+
error: {
|
|
37
|
+
minHeight: spacing.xs
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { HandleSubmitProps } from '../contexts/FormContext';
|
|
4
|
+
type FormWrapperProps<T extends z.AnyZodObject> = {
|
|
5
|
+
schema: T;
|
|
6
|
+
initialValues?: Partial<z.infer<T>>;
|
|
7
|
+
onSubmit?: HandleSubmitProps<T>;
|
|
8
|
+
submitButton: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export declare const FormWrapper: <T extends z.AnyZodObject>({ children, schema, initialValues, onSubmit, submitButton }: PropsWithChildren<FormWrapperProps<T>>) => React.JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FormWrapper = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var react_native_1 = require("react-native");
|
|
9
|
+
var FormContext_1 = require("../contexts/FormContext");
|
|
10
|
+
var useForm_1 = require("../hooks/useForm");
|
|
11
|
+
var useTheme_1 = require("../hooks/useTheme");
|
|
12
|
+
var InputsWrapper = function (_a) {
|
|
13
|
+
var children = _a.children;
|
|
14
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
15
|
+
var styles = getStyles(theme);
|
|
16
|
+
var loading = (0, useForm_1.useForm)().loading;
|
|
17
|
+
return <react_native_1.View style={[styles.inputsWrapper, loading && styles.loading]}>{children}</react_native_1.View>;
|
|
18
|
+
};
|
|
19
|
+
var FormWrapper = function (_a) {
|
|
20
|
+
var children = _a.children, schema = _a.schema, initialValues = _a.initialValues, onSubmit = _a.onSubmit, submitButton = _a.submitButton;
|
|
21
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
22
|
+
var styles = getStyles(theme);
|
|
23
|
+
return (<FormContext_1.FormProvider schema={schema} initialValues={initialValues} onSubmit={onSubmit}>
|
|
24
|
+
<react_native_1.View style={styles.formWrapper}>
|
|
25
|
+
<InputsWrapper>{children}</InputsWrapper>
|
|
26
|
+
{submitButton}
|
|
27
|
+
</react_native_1.View>
|
|
28
|
+
</FormContext_1.FormProvider>);
|
|
29
|
+
};
|
|
30
|
+
exports.FormWrapper = FormWrapper;
|
|
31
|
+
var getStyles = function (_a) {
|
|
32
|
+
var spacing = _a.spacing;
|
|
33
|
+
return react_native_1.StyleSheet.create({
|
|
34
|
+
formWrapper: {
|
|
35
|
+
width: '100%',
|
|
36
|
+
rowGap: spacing.xs
|
|
37
|
+
},
|
|
38
|
+
inputsWrapper: {
|
|
39
|
+
width: '100%',
|
|
40
|
+
rowGap: spacing.xs
|
|
41
|
+
},
|
|
42
|
+
loading: {
|
|
43
|
+
opacity: 0.5
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type HeaderProps = {
|
|
3
|
+
leftIcon?: React.ReactNode;
|
|
4
|
+
centerIcon?: React.ReactNode;
|
|
5
|
+
rightIcon?: React.ReactNode;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const Header: ({ leftIcon, centerIcon, rightIcon, title, description }: HeaderProps) => React.JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.Header = void 0;
|
|
48
|
+
var react_1 = __importStar(require("react"));
|
|
49
|
+
var react_native_1 = require("react-native");
|
|
50
|
+
var useTheme_1 = require("../hooks/useTheme");
|
|
51
|
+
var Text_1 = require("./Text");
|
|
52
|
+
var ALIGNMENTS = {
|
|
53
|
+
left: 'flex-start',
|
|
54
|
+
right: 'flex-end',
|
|
55
|
+
center: 'center'
|
|
56
|
+
};
|
|
57
|
+
var IconWrapper = function (_a) {
|
|
58
|
+
var children = _a.children, align = _a.align;
|
|
59
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
60
|
+
var styles = getStyles(theme);
|
|
61
|
+
return <react_native_1.View style={[styles.iconWrapper, { alignItems: ALIGNMENTS[align] }]}>{children}</react_native_1.View>;
|
|
62
|
+
};
|
|
63
|
+
var Header = function (_a) {
|
|
64
|
+
var leftIcon = _a.leftIcon, centerIcon = _a.centerIcon, rightIcon = _a.rightIcon, title = _a.title, description = _a.description;
|
|
65
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
66
|
+
var styles = getStyles(theme);
|
|
67
|
+
var rowJustifyContent = (0, react_1.useMemo)(function () {
|
|
68
|
+
if (centerIcon)
|
|
69
|
+
return 'center';
|
|
70
|
+
if (!description)
|
|
71
|
+
return 'space-between';
|
|
72
|
+
}, [centerIcon, description]);
|
|
73
|
+
var containerPaddingVertical = centerIcon ? theme.spacing.sm : theme.spacing.md;
|
|
74
|
+
return (<react_native_1.View style={[styles.container, { paddingVertical: containerPaddingVertical }]}>
|
|
75
|
+
<react_native_1.View style={[styles.row, { justifyContent: rowJustifyContent }]}>
|
|
76
|
+
{centerIcon ? (<IconWrapper align="center">{centerIcon}</IconWrapper>) : (<>
|
|
77
|
+
<IconWrapper align="left">{leftIcon}</IconWrapper>
|
|
78
|
+
<Text_1.Text variant={description ? 'h3' : 'h4'} style={styles.whiteText}>
|
|
79
|
+
{title}
|
|
80
|
+
</Text_1.Text>
|
|
81
|
+
<IconWrapper align="right">{rightIcon}</IconWrapper>
|
|
82
|
+
</>)}
|
|
83
|
+
</react_native_1.View>
|
|
84
|
+
|
|
85
|
+
{description && (<Text_1.Text variant="sm" style={styles.whiteText}>
|
|
86
|
+
{description}
|
|
87
|
+
</Text_1.Text>)}
|
|
88
|
+
</react_native_1.View>);
|
|
89
|
+
};
|
|
90
|
+
exports.Header = Header;
|
|
91
|
+
var getStyles = function (_a) {
|
|
92
|
+
var colors = _a.colors, spacing = _a.spacing, shadows = _a.shadows;
|
|
93
|
+
return react_native_1.StyleSheet.create({
|
|
94
|
+
container: __assign({ width: '100%', paddingHorizontal: spacing.sm, backgroundColor: colors.primary, rowGap: spacing.xs }, shadows.soft),
|
|
95
|
+
row: {
|
|
96
|
+
flexDirection: 'row',
|
|
97
|
+
alignItems: 'center',
|
|
98
|
+
columnGap: spacing.sm
|
|
99
|
+
},
|
|
100
|
+
whiteText: {
|
|
101
|
+
color: colors.white
|
|
102
|
+
},
|
|
103
|
+
iconWrapper: {
|
|
104
|
+
minWidth: 26,
|
|
105
|
+
minHeight: 26,
|
|
106
|
+
justifyContent: 'center'
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
import { TextInputProps } from 'react-native';
|
|
3
|
+
interface InputProps extends TextInputProps {
|
|
4
|
+
label?: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const Input: ({ label, error, id, ...props }: PropsWithChildren<InputProps>) => import("react").JSX.Element;
|
|
8
|
+
export default Input;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Input = void 0;
|
|
18
|
+
var react_1 = require("react");
|
|
19
|
+
var react_native_1 = require("react-native");
|
|
20
|
+
var useForm_1 = require("../hooks/useForm");
|
|
21
|
+
var useTheme_1 = require("../hooks/useTheme");
|
|
22
|
+
var FormControl_1 = __importDefault(require("./FormControl"));
|
|
23
|
+
var Input = function (_a) {
|
|
24
|
+
var label = _a.label, error = _a.error, id = _a.id, props = __rest(_a, ["label", "error", "id"]);
|
|
25
|
+
var theme = (0, useTheme_1.useTheme)();
|
|
26
|
+
var styles = getStyles(theme);
|
|
27
|
+
var _b = (0, useForm_1.useForm)(), errors = _b.errors, data = _b.data, clearError = _b.clearError, updateData = _b.updateData, loading = _b.loading;
|
|
28
|
+
var _c = (0, react_1.useState)(false), focused = _c[0], setFocused = _c[1];
|
|
29
|
+
var onFocus = function (e) {
|
|
30
|
+
var _a;
|
|
31
|
+
setFocused(true);
|
|
32
|
+
clearError === null || clearError === void 0 ? void 0 : clearError(id);
|
|
33
|
+
(_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
34
|
+
};
|
|
35
|
+
var onBlur = function (e) {
|
|
36
|
+
var _a;
|
|
37
|
+
setFocused(false);
|
|
38
|
+
(_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
39
|
+
};
|
|
40
|
+
var onChangeText = function (text) {
|
|
41
|
+
var _a;
|
|
42
|
+
updateData === null || updateData === void 0 ? void 0 : updateData(id)(text);
|
|
43
|
+
(_a = props.onChangeText) === null || _a === void 0 ? void 0 : _a.call(props, text);
|
|
44
|
+
};
|
|
45
|
+
var formError = errors === null || errors === void 0 ? void 0 : errors[id];
|
|
46
|
+
var formValue = data === null || data === void 0 ? void 0 : data[id];
|
|
47
|
+
var err = formError || error;
|
|
48
|
+
return (<FormControl_1.default label={label} error={err} name={id}>
|
|
49
|
+
<react_native_1.TextInput {...props} id={id} style={[styles.input, focused && styles.focused, err && styles.error, props.style]} onFocus={onFocus} onBlur={onBlur} placeholderTextColor={theme.colors.gray} value={formValue || props.value} onChangeText={onChangeText} editable={!loading} accessibilityLabel="input" accessibilityLabelledBy={id} accessibilityState={{ busy: loading, disabled: loading }}/>
|
|
50
|
+
</FormControl_1.default>);
|
|
51
|
+
};
|
|
52
|
+
exports.Input = Input;
|
|
53
|
+
exports.default = exports.Input;
|
|
54
|
+
var getStyles = function (_a) {
|
|
55
|
+
var colors = _a.colors, spacing = _a.spacing, fontSize = _a.fontSize, borderRadius = _a.borderRadius;
|
|
56
|
+
return react_native_1.StyleSheet.create({
|
|
57
|
+
input: {
|
|
58
|
+
color: colors.black,
|
|
59
|
+
fontSize: fontSize.base,
|
|
60
|
+
padding: spacing.sm,
|
|
61
|
+
borderWidth: 1,
|
|
62
|
+
borderColor: colors.gray,
|
|
63
|
+
borderRadius: borderRadius.md,
|
|
64
|
+
width: '100%',
|
|
65
|
+
backgroundColor: colors.white
|
|
66
|
+
},
|
|
67
|
+
focused: {
|
|
68
|
+
borderColor: colors.primary
|
|
69
|
+
},
|
|
70
|
+
error: {
|
|
71
|
+
borderColor: colors.warning
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface AttachmentPreviewModalProps {
|
|
3
|
+
onCancel?: () => void;
|
|
4
|
+
onRemove?: () => void;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
attachment: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const AttachmentPreviewModal: ({ onCancel, onRemove, visible, attachment }: AttachmentPreviewModalProps) => React.JSX.Element;
|
|
9
|
+
export {};
|