@ovok/native 1.9.0 → 1.10.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/modules/auth/default-translation.js +8 -0
- package/lib/commonjs/modules/auth/default-translation.js.map +1 -1
- package/lib/commonjs/modules/auth/profile/components/form-phone-field.js +163 -0
- package/lib/commonjs/modules/auth/profile/components/form-phone-field.js.map +1 -0
- package/lib/commonjs/modules/auth/profile/components/profile-form-choice-field.js +64 -0
- package/lib/commonjs/modules/auth/profile/components/profile-form-choice-field.js.map +1 -0
- package/lib/commonjs/modules/auth/profile/components/profile-form-field-component.js +46 -9
- package/lib/commonjs/modules/auth/profile/components/profile-form-field-component.js.map +1 -1
- package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js +31 -11
- package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js.map +1 -1
- package/lib/commonjs/modules/auth/profile/utils/phone.js +31 -0
- package/lib/commonjs/modules/auth/profile/utils/phone.js.map +1 -0
- package/lib/commonjs/modules/auth/register/components/form/inputs.js +32 -4
- package/lib/commonjs/modules/auth/register/components/form/inputs.js.map +1 -1
- package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js +18 -4
- package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js.map +1 -1
- package/lib/commonjs/modules/auth/register/contexts/register-form-context.js.map +1 -1
- package/lib/commonjs/modules/auth/register/utils/create-register-validation-schema.js +23 -3
- package/lib/commonjs/modules/auth/register/utils/create-register-validation-schema.js.map +1 -1
- package/lib/commonjs/modules/helpers/form-items/form-date-field.js +27 -4
- package/lib/commonjs/modules/helpers/form-items/form-date-field.js.map +1 -1
- package/lib/commonjs/modules/helpers/form-items/form-field.js +2 -1
- package/lib/commonjs/modules/helpers/form-items/form-field.js.map +1 -1
- package/lib/module/modules/auth/default-translation.js +8 -0
- package/lib/module/modules/auth/default-translation.js.map +1 -1
- package/lib/module/modules/auth/profile/components/form-phone-field.js +157 -0
- package/lib/module/modules/auth/profile/components/form-phone-field.js.map +1 -0
- package/lib/module/modules/auth/profile/components/profile-form-choice-field.js +58 -0
- package/lib/module/modules/auth/profile/components/profile-form-choice-field.js.map +1 -0
- package/lib/module/modules/auth/profile/components/profile-form-field-component.js +46 -9
- package/lib/module/modules/auth/profile/components/profile-form-field-component.js.map +1 -1
- package/lib/module/modules/auth/profile/components/profile-form-provider.js +31 -11
- package/lib/module/modules/auth/profile/components/profile-form-provider.js.map +1 -1
- package/lib/module/modules/auth/profile/utils/phone.js +25 -0
- package/lib/module/modules/auth/profile/utils/phone.js.map +1 -0
- package/lib/module/modules/auth/register/components/form/inputs.js +32 -4
- package/lib/module/modules/auth/register/components/form/inputs.js.map +1 -1
- package/lib/module/modules/auth/register/components/form/register-form-provider.js +18 -4
- package/lib/module/modules/auth/register/components/form/register-form-provider.js.map +1 -1
- package/lib/module/modules/auth/register/contexts/register-form-context.js.map +1 -1
- package/lib/module/modules/auth/register/utils/create-register-validation-schema.js +23 -3
- package/lib/module/modules/auth/register/utils/create-register-validation-schema.js.map +1 -1
- package/lib/module/modules/helpers/form-items/form-date-field.js +27 -4
- package/lib/module/modules/helpers/form-items/form-date-field.js.map +1 -1
- package/lib/module/modules/helpers/form-items/form-field.js +2 -1
- package/lib/module/modules/helpers/form-items/form-field.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/profile/components/form-phone-field.d.ts +13 -0
- package/lib/typescript/commonjs/src/modules/auth/profile/components/form-phone-field.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/auth/profile/components/profile-form-choice-field.d.ts +14 -0
- package/lib/typescript/commonjs/src/modules/auth/profile/components/profile-form-choice-field.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/auth/profile/components/profile-form-field-component.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/profile/types/profile-form-field.d.ts +35 -3
- package/lib/typescript/commonjs/src/modules/auth/profile/types/profile-form-field.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/profile/types/profile-form-props.d.ts +3 -8
- package/lib/typescript/commonjs/src/modules/auth/profile/types/profile-form-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/profile/utils/phone.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/auth/profile/utils/phone.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/register/contexts/register-form-context.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/auth/register/contexts/register-form-context.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/register/hooks/use-register-form.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/auth/register/hooks/use-register-form.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/register/types/register-form-props.d.ts +16 -3
- package/lib/typescript/commonjs/src/modules/auth/register/types/register-form-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/register/types/register-form-values.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/auth/register/types/register-form-values.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/register/utils/create-register-validation-schema.d.ts +10 -3
- package/lib/typescript/commonjs/src/modules/auth/register/utils/create-register-validation-schema.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/helpers/form-items/form-date-field.d.ts +11 -2
- package/lib/typescript/commonjs/src/modules/helpers/form-items/form-date-field.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/helpers/form-items/form-field.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/default-translation.d.ts +8 -0
- package/lib/typescript/module/src/modules/auth/default-translation.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/profile/components/form-phone-field.d.ts +13 -0
- package/lib/typescript/module/src/modules/auth/profile/components/form-phone-field.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/auth/profile/components/profile-form-choice-field.d.ts +14 -0
- package/lib/typescript/module/src/modules/auth/profile/components/profile-form-choice-field.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/auth/profile/components/profile-form-field-component.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/profile/types/profile-form-field.d.ts +35 -3
- package/lib/typescript/module/src/modules/auth/profile/types/profile-form-field.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/profile/types/profile-form-props.d.ts +3 -8
- package/lib/typescript/module/src/modules/auth/profile/types/profile-form-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/profile/utils/phone.d.ts +6 -0
- package/lib/typescript/module/src/modules/auth/profile/utils/phone.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/register/contexts/register-form-context.d.ts +6 -0
- package/lib/typescript/module/src/modules/auth/register/contexts/register-form-context.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/register/hooks/use-register-form.d.ts +5 -0
- package/lib/typescript/module/src/modules/auth/register/hooks/use-register-form.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/register/types/register-form-props.d.ts +16 -3
- package/lib/typescript/module/src/modules/auth/register/types/register-form-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/register/types/register-form-values.d.ts +1 -0
- package/lib/typescript/module/src/modules/auth/register/types/register-form-values.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/register/utils/create-register-validation-schema.d.ts +10 -3
- package/lib/typescript/module/src/modules/auth/register/utils/create-register-validation-schema.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/helpers/form-items/form-date-field.d.ts +11 -2
- package/lib/typescript/module/src/modules/helpers/form-items/form-date-field.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/helpers/form-items/form-field.d.ts +2 -1
- package/lib/typescript/module/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
- package/package.json +4 -2
|
@@ -16,12 +16,20 @@ const defaultTranslation = exports.defaultTranslation = {
|
|
|
16
16
|
delete: "Delete"
|
|
17
17
|
},
|
|
18
18
|
profile: {
|
|
19
|
+
form: {
|
|
20
|
+
phone: {
|
|
21
|
+
country: "Country",
|
|
22
|
+
invalid: "Enter a valid phone number for the selected country.",
|
|
23
|
+
searchCountry: "Search countries"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
19
26
|
save: "Save"
|
|
20
27
|
},
|
|
21
28
|
register: {
|
|
22
29
|
"already-have-account": "Already have an account? <login/>",
|
|
23
30
|
button: "Create account",
|
|
24
31
|
name: "First name",
|
|
32
|
+
"full-name": "Full name",
|
|
25
33
|
"or-register-with": "Or register with",
|
|
26
34
|
"password-confirm": "Confirm password",
|
|
27
35
|
subtitle: "Create your account",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18next","_interopRequireDefault","require","e","__esModule","default","defaultTranslation","exports","auth","common","cancel","delete","profile","save","register","button","name","subtitle","surname","title","accountType","email","patient","practitioner","settings","logout","apple","footer","google","mfa","code","verify","password","errors","unavailable","network","generic","i18n","addResourceBundle","resources","options","englishResources","Object","assign","en","existingTranslation","translation"],"sourceRoot":"../../../../src","sources":["modules/auth/default-translation.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3B;AACO,MAAMG,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAChCE,IAAI,EAAE;IAAE,YAAY,EAAE;EAAsD,CAAC;EAC7EC,MAAM,EAAE;IAAEC,MAAM,EAAE,QAAQ;IAAEC,MAAM,EAAE;EAAS,CAAC;EAC9CC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"names":["_i18next","_interopRequireDefault","require","e","__esModule","default","defaultTranslation","exports","auth","common","cancel","delete","profile","form","phone","country","invalid","searchCountry","save","register","button","name","subtitle","surname","title","accountType","email","patient","practitioner","settings","logout","apple","footer","google","mfa","code","verify","password","errors","unavailable","network","generic","i18n","addResourceBundle","resources","options","englishResources","Object","assign","en","existingTranslation","translation"],"sourceRoot":"../../../../src","sources":["modules/auth/default-translation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FormPhoneField = void 0;
|
|
7
|
+
var _countriesList = require("countries-list");
|
|
8
|
+
var _formik = require("formik");
|
|
9
|
+
var _libphonenumberJs = require("libphonenumber-js");
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _reactNative = require("react-native");
|
|
13
|
+
var _reactNativeElementDropdown = require("react-native-element-dropdown");
|
|
14
|
+
var _reactNativePaper = require("react-native-paper");
|
|
15
|
+
var _index = require("../../../theme/index.js");
|
|
16
|
+
var _profileFormContext = require("../contexts/profile-form-context.js");
|
|
17
|
+
var _phone = require("../utils/phone.js");
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
20
|
+
const phoneCountries = (0, _libphonenumberJs.getCountries)().filter(code => Boolean(_countriesList.countries[code])).map(code => ({
|
|
21
|
+
value: code,
|
|
22
|
+
label: `${_countriesList.countries[code].name} (+${(0, _libphonenumberJs.getCountryCallingCode)(code)})`
|
|
23
|
+
})).sort((first, second) => first.label.localeCompare(second.label));
|
|
24
|
+
const FormPhoneField = ({
|
|
25
|
+
name,
|
|
26
|
+
fieldName,
|
|
27
|
+
label,
|
|
28
|
+
defaultCountry,
|
|
29
|
+
disabled = false,
|
|
30
|
+
testID
|
|
31
|
+
}) => {
|
|
32
|
+
const {
|
|
33
|
+
t
|
|
34
|
+
} = (0, _reactI18next.useTranslation)();
|
|
35
|
+
const theme = (0, _index.useAppTheme)();
|
|
36
|
+
const {
|
|
37
|
+
values,
|
|
38
|
+
errors,
|
|
39
|
+
touched,
|
|
40
|
+
setFieldValue,
|
|
41
|
+
setFieldTouched
|
|
42
|
+
} = React.useContext(_profileFormContext.ProfileFormContext);
|
|
43
|
+
const storedValue = (0, _formik.getIn)(values, name) ?? "";
|
|
44
|
+
const countryFieldName = (0, _phone.phoneCountryFieldName)(fieldName);
|
|
45
|
+
const storedCountry = values[countryFieldName];
|
|
46
|
+
const parsedStoredValue = (0, _libphonenumberJs.parsePhoneNumberFromString)(storedValue);
|
|
47
|
+
const parsedStoredNational = parsedStoredValue?.formatNational();
|
|
48
|
+
const [country, setCountry] = React.useState(storedCountry ?? parsedStoredValue?.country ?? defaultCountry);
|
|
49
|
+
const [draft, setDraft] = React.useState(() => {
|
|
50
|
+
if (!storedValue) {
|
|
51
|
+
return "";
|
|
52
|
+
}
|
|
53
|
+
return parsedStoredNational ?? storedValue;
|
|
54
|
+
});
|
|
55
|
+
const lastInputValue = React.useRef(storedValue);
|
|
56
|
+
const error = (0, _formik.getIn)(touched, name) && (0, _formik.getIn)(errors, name);
|
|
57
|
+
React.useEffect(() => {
|
|
58
|
+
if (storedCountry && storedCountry !== country) {
|
|
59
|
+
setCountry(storedCountry);
|
|
60
|
+
}
|
|
61
|
+
}, [country, storedCountry]);
|
|
62
|
+
React.useEffect(() => {
|
|
63
|
+
if (storedValue === lastInputValue.current) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
lastInputValue.current = storedValue;
|
|
67
|
+
if (!storedValue) {
|
|
68
|
+
setDraft("");
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
setDraft(parsedStoredNational ?? storedValue);
|
|
72
|
+
}, [parsedStoredNational, storedValue]);
|
|
73
|
+
const handlePhoneChange = value => {
|
|
74
|
+
setDraft(value);
|
|
75
|
+
const e164Value = (0, _phone.toPhoneE164)(value, country);
|
|
76
|
+
lastInputValue.current = e164Value;
|
|
77
|
+
void setFieldValue(name, e164Value);
|
|
78
|
+
};
|
|
79
|
+
const handleCountryChange = item => {
|
|
80
|
+
setCountry(item.value);
|
|
81
|
+
void setFieldValue(countryFieldName, item.value);
|
|
82
|
+
const e164Value = (0, _phone.toPhoneE164)(draft, item.value);
|
|
83
|
+
lastInputValue.current = e164Value;
|
|
84
|
+
void setFieldValue(name, e164Value);
|
|
85
|
+
};
|
|
86
|
+
const handleBlur = () => {
|
|
87
|
+
void setFieldTouched(name, true);
|
|
88
|
+
const parsed = (0, _libphonenumberJs.parsePhoneNumberFromString)(draft, country);
|
|
89
|
+
if (parsed) {
|
|
90
|
+
setDraft(parsed.formatNational());
|
|
91
|
+
lastInputValue.current = parsed.number;
|
|
92
|
+
void setFieldValue(name, parsed.number);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const countryLabel = phoneCountries.find(item => item.value === country)?.label ?? country;
|
|
96
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
97
|
+
style: {
|
|
98
|
+
gap: theme.spacing(1.5)
|
|
99
|
+
},
|
|
100
|
+
testID: testID,
|
|
101
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
102
|
+
style: {
|
|
103
|
+
flexDirection: "row",
|
|
104
|
+
gap: theme.spacing(1.5)
|
|
105
|
+
},
|
|
106
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeElementDropdown.Dropdown, {
|
|
107
|
+
accessibilityLabel: t("profile.form.phone.country"),
|
|
108
|
+
data: phoneCountries,
|
|
109
|
+
labelField: "label",
|
|
110
|
+
valueField: "value",
|
|
111
|
+
value: country,
|
|
112
|
+
search: true,
|
|
113
|
+
disable: disabled,
|
|
114
|
+
testID: testID ? `${testID}-country` : undefined,
|
|
115
|
+
searchPlaceholder: t("profile.form.phone.searchCountry"),
|
|
116
|
+
maxHeight: 300,
|
|
117
|
+
onChange: handleCountryChange,
|
|
118
|
+
style: {
|
|
119
|
+
width: 150,
|
|
120
|
+
borderWidth: 1,
|
|
121
|
+
borderColor: theme.colors.outline,
|
|
122
|
+
borderRadius: theme.borderRadius(2),
|
|
123
|
+
paddingHorizontal: theme.spacing(2)
|
|
124
|
+
},
|
|
125
|
+
selectedTextStyle: {
|
|
126
|
+
color: theme.colors.onSurface
|
|
127
|
+
},
|
|
128
|
+
itemTextStyle: {
|
|
129
|
+
color: theme.colors.onSurface
|
|
130
|
+
},
|
|
131
|
+
containerStyle: {
|
|
132
|
+
backgroundColor: theme.colors.background,
|
|
133
|
+
borderColor: theme.colors.outline,
|
|
134
|
+
borderRadius: theme.spacing(2.5)
|
|
135
|
+
}
|
|
136
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.TextInput, {
|
|
137
|
+
mode: "outlined",
|
|
138
|
+
label: label,
|
|
139
|
+
value: draft,
|
|
140
|
+
editable: !disabled,
|
|
141
|
+
keyboardType: "phone-pad",
|
|
142
|
+
autoCapitalize: "none",
|
|
143
|
+
error: !!error,
|
|
144
|
+
testID: testID ? `${testID}-input` : undefined,
|
|
145
|
+
accessibilityLabel: label,
|
|
146
|
+
onChangeText: handlePhoneChange,
|
|
147
|
+
onBlur: handleBlur,
|
|
148
|
+
theme: {
|
|
149
|
+
roundness: theme.borderRadius(2)
|
|
150
|
+
},
|
|
151
|
+
style: {
|
|
152
|
+
flex: 1
|
|
153
|
+
},
|
|
154
|
+
accessibilityHint: countryLabel
|
|
155
|
+
})]
|
|
156
|
+
}), error ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.HelperText, {
|
|
157
|
+
type: "error",
|
|
158
|
+
children: t(error)
|
|
159
|
+
}) : null]
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
exports.FormPhoneField = FormPhoneField;
|
|
163
|
+
//# sourceMappingURL=form-phone-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_countriesList","require","_formik","_libphonenumberJs","React","_interopRequireWildcard","_reactI18next","_reactNative","_reactNativeElementDropdown","_reactNativePaper","_index","_profileFormContext","_phone","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","phoneCountries","getCountries","filter","code","Boolean","countries","map","value","label","name","getCountryCallingCode","sort","first","second","localeCompare","FormPhoneField","fieldName","defaultCountry","disabled","testID","useTranslation","theme","useAppTheme","values","errors","touched","setFieldValue","setFieldTouched","useContext","ProfileFormContext","storedValue","getIn","countryFieldName","phoneCountryFieldName","storedCountry","parsedStoredValue","parsePhoneNumberFromString","parsedStoredNational","formatNational","country","setCountry","useState","draft","setDraft","lastInputValue","useRef","error","useEffect","current","handlePhoneChange","e164Value","toPhoneE164","handleCountryChange","item","handleBlur","parsed","number","countryLabel","find","jsxs","View","style","gap","spacing","children","flexDirection","jsx","Dropdown","accessibilityLabel","data","labelField","valueField","search","disable","undefined","searchPlaceholder","maxHeight","onChange","width","borderWidth","borderColor","colors","outline","borderRadius","paddingHorizontal","selectedTextStyle","color","onSurface","itemTextStyle","containerStyle","backgroundColor","background","TextInput","mode","editable","keyboardType","autoCapitalize","onChangeText","onBlur","roundness","flex","accessibilityHint","HelperText","type","exports"],"sourceRoot":"../../../../../../src","sources":["modules/auth/profile/components/form-phone-field.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ProfileFormChoiceField = void 0;
|
|
7
|
+
var _formik = require("formik");
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactI18next = require("react-i18next");
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
var _reactNativePaper = require("react-native-paper");
|
|
12
|
+
var _index = require("../../../theme/index.js");
|
|
13
|
+
var _profileFormContext = require("../contexts/profile-form-context.js");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
|
+
const ProfileFormChoiceField = ({
|
|
17
|
+
name,
|
|
18
|
+
label,
|
|
19
|
+
options,
|
|
20
|
+
disabled = false,
|
|
21
|
+
testID
|
|
22
|
+
}) => {
|
|
23
|
+
const theme = (0, _index.useAppTheme)();
|
|
24
|
+
const {
|
|
25
|
+
t
|
|
26
|
+
} = (0, _reactI18next.useTranslation)();
|
|
27
|
+
const {
|
|
28
|
+
values,
|
|
29
|
+
errors,
|
|
30
|
+
touched,
|
|
31
|
+
setFieldValue,
|
|
32
|
+
setFieldTouched
|
|
33
|
+
} = React.useContext(_profileFormContext.ProfileFormContext);
|
|
34
|
+
const value = (0, _formik.getIn)(values, name) ?? "";
|
|
35
|
+
const error = (0, _formik.getIn)(touched, name) && (0, _formik.getIn)(errors, name);
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
37
|
+
testID: testID,
|
|
38
|
+
style: {
|
|
39
|
+
gap: theme.spacing(1)
|
|
40
|
+
},
|
|
41
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.Text, {
|
|
42
|
+
variant: "labelLarge",
|
|
43
|
+
children: label
|
|
44
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.RadioButton.Group, {
|
|
45
|
+
value: value,
|
|
46
|
+
onValueChange: nextValue => {
|
|
47
|
+
void setFieldValue(name, nextValue);
|
|
48
|
+
void setFieldTouched(name, true);
|
|
49
|
+
},
|
|
50
|
+
children: options.map(option => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.RadioButton.Item, {
|
|
51
|
+
label: option.label,
|
|
52
|
+
value: option.value,
|
|
53
|
+
disabled: disabled,
|
|
54
|
+
testID: testID ? `${testID}-${option.value}` : undefined,
|
|
55
|
+
position: "leading"
|
|
56
|
+
}, option.value))
|
|
57
|
+
}), error ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.HelperText, {
|
|
58
|
+
type: "error",
|
|
59
|
+
children: t(error)
|
|
60
|
+
}) : null]
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
exports.ProfileFormChoiceField = ProfileFormChoiceField;
|
|
64
|
+
//# sourceMappingURL=profile-form-choice-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_formik","require","React","_interopRequireWildcard","_reactI18next","_reactNative","_reactNativePaper","_index","_profileFormContext","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProfileFormChoiceField","name","label","options","disabled","testID","theme","useAppTheme","useTranslation","values","errors","touched","setFieldValue","setFieldTouched","useContext","ProfileFormContext","value","getIn","error","jsxs","View","style","gap","spacing","children","jsx","Text","variant","RadioButton","Group","onValueChange","nextValue","map","option","Item","undefined","position","HelperText","type","exports"],"sourceRoot":"../../../../../../src","sources":["modules/auth/profile/components/profile-form-choice-field.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,8 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _index = require("../../../helpers/index.js");
|
|
9
9
|
var _formDateField = require("../../../helpers/form-items/form-date-field.js");
|
|
10
10
|
var _profileFormContext = require("../contexts/profile-form-context.js");
|
|
11
|
+
var _formPhoneField = require("./form-phone-field.js");
|
|
12
|
+
var _profileFormChoiceField = require("./profile-form-choice-field.js");
|
|
11
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
15
|
const ProfileFormFieldComponent = ({
|
|
@@ -15,26 +17,61 @@ const ProfileFormFieldComponent = ({
|
|
|
15
17
|
}) => {
|
|
16
18
|
if (field.type === "text") {
|
|
17
19
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.FormField, {
|
|
18
|
-
...field,
|
|
20
|
+
...field.inputProps,
|
|
19
21
|
name: `['${field.name}']`,
|
|
20
|
-
context: _profileFormContext.ProfileFormContext
|
|
21
|
-
|
|
22
|
+
context: _profileFormContext.ProfileFormContext,
|
|
23
|
+
label: field.label,
|
|
24
|
+
testID: field.testID,
|
|
25
|
+
editable: field.disabled ? false : field.inputProps?.editable,
|
|
26
|
+
keyboardType: field.keyboardType ?? field.inputProps?.keyboardType
|
|
27
|
+
});
|
|
22
28
|
}
|
|
23
29
|
if (field.type === "date") {
|
|
24
30
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formDateField.FormDateField, {
|
|
25
|
-
...field,
|
|
26
31
|
name: `['${field.name}']`,
|
|
27
|
-
context: _profileFormContext.ProfileFormContext
|
|
28
|
-
|
|
32
|
+
context: _profileFormContext.ProfileFormContext,
|
|
33
|
+
label: field.label,
|
|
34
|
+
testID: field.testID,
|
|
35
|
+
disabled: field.disabled,
|
|
36
|
+
mode: field.mode,
|
|
37
|
+
initialDate: field.initialDate,
|
|
38
|
+
minimumDate: field.minimumDate,
|
|
39
|
+
maximumDate: field.maximumDate,
|
|
40
|
+
display: field.display,
|
|
41
|
+
locale: field.locale,
|
|
42
|
+
formatValue: field.formatValue
|
|
43
|
+
});
|
|
29
44
|
}
|
|
30
45
|
if (field.type === "select") {
|
|
31
46
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.FormSelect, {
|
|
32
|
-
...field,
|
|
33
47
|
context: _profileFormContext.ProfileFormContext,
|
|
34
48
|
labelField: "label",
|
|
35
49
|
valueField: "value",
|
|
36
|
-
name: `['${field.name}']
|
|
37
|
-
|
|
50
|
+
name: `['${field.name}']`,
|
|
51
|
+
label: field.label,
|
|
52
|
+
options: field.options,
|
|
53
|
+
testID: field.testID,
|
|
54
|
+
disable: field.disabled
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (field.type === "choice") {
|
|
58
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_profileFormChoiceField.ProfileFormChoiceField, {
|
|
59
|
+
name: `['${field.name}']`,
|
|
60
|
+
label: field.label,
|
|
61
|
+
options: field.options,
|
|
62
|
+
disabled: field.disabled,
|
|
63
|
+
testID: field.testID
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (field.type === "phone") {
|
|
67
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formPhoneField.FormPhoneField, {
|
|
68
|
+
name: `['${field.name}']`,
|
|
69
|
+
fieldName: field.name,
|
|
70
|
+
label: field.label,
|
|
71
|
+
defaultCountry: field.defaultCountry,
|
|
72
|
+
disabled: field.disabled,
|
|
73
|
+
testID: field.testID
|
|
74
|
+
});
|
|
38
75
|
}
|
|
39
76
|
return null;
|
|
40
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_index","_formDateField","_profileFormContext","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProfileFormFieldComponent","field","type","jsx","FormField","name","context","ProfileFormContext","FormDateField","FormSelect","labelField","valueField","exports"],"sourceRoot":"../../../../../../src","sources":["modules/auth/profile/components/profile-form-field-component.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_index","_formDateField","_profileFormContext","_formPhoneField","_profileFormChoiceField","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProfileFormFieldComponent","field","type","jsx","FormField","inputProps","name","context","ProfileFormContext","label","testID","editable","disabled","keyboardType","FormDateField","mode","initialDate","minimumDate","maximumDate","display","locale","formatValue","FormSelect","labelField","valueField","options","disable","ProfileFormChoiceField","FormPhoneField","fieldName","defaultCountry","exports"],"sourceRoot":"../../../../../../src","sources":["modules/auth/profile/components/profile-form-field-component.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AAGA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,uBAAA,GAAAL,OAAA;AAAqE,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAM9D,MAAMkB,yBAEZ,GAAGA,CAAC;EAAEC;AAAM,CAAC,KAAK;EACjB,IAAIA,KAAK,CAACC,IAAI,KAAK,MAAM,EAAE;IACzB,oBACE,IAAAtB,WAAA,CAAAuB,GAAA,EAAC5B,MAAA,CAAA6B,SAAS;MAAA,GACJH,KAAK,CAACI,UAAU;MACpBC,IAAI,EAAE,KAAKL,KAAK,CAACK,IAAI,IAAK;MAC1BC,OAAO,EAAEC,sCAAmB;MAC5BC,KAAK,EAAER,KAAK,CAACQ,KAAM;MACnBC,MAAM,EAAET,KAAK,CAACS,MAAO;MACrBC,QAAQ,EAAEV,KAAK,CAACW,QAAQ,GAAG,KAAK,GAAGX,KAAK,CAACI,UAAU,EAAEM,QAAS;MAC9DE,YAAY,EAAEZ,KAAK,CAACY,YAAY,IAAIZ,KAAK,CAACI,UAAU,EAAEQ;IAAa,CACpE,CAAC;EAEN;EAEA,IAAIZ,KAAK,CAACC,IAAI,KAAK,MAAM,EAAE;IACzB,oBACE,IAAAtB,WAAA,CAAAuB,GAAA,EAAC3B,cAAA,CAAAsC,aAAa;MACZR,IAAI,EAAE,KAAKL,KAAK,CAACK,IAAI,IAAK;MAC1BC,OAAO,EAAEC,sCAAmB;MAC5BC,KAAK,EAAER,KAAK,CAACQ,KAAM;MACnBC,MAAM,EAAET,KAAK,CAACS,MAAO;MACrBE,QAAQ,EAAEX,KAAK,CAACW,QAAS;MACzBG,IAAI,EAAEd,KAAK,CAACc,IAAK;MACjBC,WAAW,EAAEf,KAAK,CAACe,WAAY;MAC/BC,WAAW,EAAEhB,KAAK,CAACgB,WAAY;MAC/BC,WAAW,EAAEjB,KAAK,CAACiB,WAAY;MAC/BC,OAAO,EAAElB,KAAK,CAACkB,OAAQ;MACvBC,MAAM,EAAEnB,KAAK,CAACmB,MAAO;MACrBC,WAAW,EAAEpB,KAAK,CAACoB;IAAY,CAChC,CAAC;EAEN;EAEA,IAAIpB,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;IAC3B,oBACE,IAAAtB,WAAA,CAAAuB,GAAA,EAAC5B,MAAA,CAAA+C,UAAU;MACTf,OAAO,EAAEC,sCAAmB;MAC5Be,UAAU,EAAC,OAAO;MAClBC,UAAU,EAAC,OAAO;MAClBlB,IAAI,EAAE,KAAKL,KAAK,CAACK,IAAI,IAAK;MAC1BG,KAAK,EAAER,KAAK,CAACQ,KAAM;MACnBgB,OAAO,EAAExB,KAAK,CAACwB,OAAQ;MACvBf,MAAM,EAAET,KAAK,CAACS,MAAO;MACrBgB,OAAO,EAAEzB,KAAK,CAACW;IAAS,CACzB,CAAC;EAEN;EAEA,IAAIX,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;IAC3B,oBACE,IAAAtB,WAAA,CAAAuB,GAAA,EAACxB,uBAAA,CAAAgD,sBAAsB;MACrBrB,IAAI,EAAE,KAAKL,KAAK,CAACK,IAAI,IAAK;MAC1BG,KAAK,EAAER,KAAK,CAACQ,KAAM;MACnBgB,OAAO,EAAExB,KAAK,CAACwB,OAAQ;MACvBb,QAAQ,EAAEX,KAAK,CAACW,QAAS;MACzBF,MAAM,EAAET,KAAK,CAACS;IAAO,CACtB,CAAC;EAEN;EAEA,IAAIT,KAAK,CAACC,IAAI,KAAK,OAAO,EAAE;IAC1B,oBACE,IAAAtB,WAAA,CAAAuB,GAAA,EAACzB,eAAA,CAAAkD,cAAc;MACbtB,IAAI,EAAE,KAAKL,KAAK,CAACK,IAAI,IAAK;MAC1BuB,SAAS,EAAE5B,KAAK,CAACK,IAAK;MACtBG,KAAK,EAAER,KAAK,CAACQ,KAAM;MACnBqB,cAAc,EAAE7B,KAAK,CAAC6B,cAAe;MACrClB,QAAQ,EAAEX,KAAK,CAACW,QAAS;MACzBF,MAAM,EAAET,KAAK,CAACS;IAAO,CACtB,CAAC;EAEN;EAEA,OAAO,IAAI;AACb,CAAC;AAACqB,OAAA,CAAA/B,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ProfileFormProvider = void 0;
|
|
7
7
|
var _core = require("@ovok/core");
|
|
8
8
|
var _formik = require("formik");
|
|
9
|
+
var _libphonenumberJs = require("libphonenumber-js");
|
|
9
10
|
var _react = _interopRequireDefault(require("react"));
|
|
10
11
|
var Yup = _interopRequireWildcard(require("yup"));
|
|
11
12
|
var _useShallowStableValue = require("../../../helpers/hooks/use-shallow-stable-value.js");
|
|
12
13
|
var _profileFormContext = require("../contexts/profile-form-context.js");
|
|
14
|
+
var _phone = require("../utils/phone.js");
|
|
13
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
16
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -22,7 +24,11 @@ const ProfileFormProvider = ({
|
|
|
22
24
|
const client = (0, _core.useClient)();
|
|
23
25
|
const initialValues = _react.default.useMemo(() => {
|
|
24
26
|
const values = fields.reduce((acc, field) => {
|
|
25
|
-
|
|
27
|
+
const value = field.type === "phone" ? (0, _phone.toPhoneE164)(field.value ?? "", field.defaultCountry) : field.value ?? "";
|
|
28
|
+
acc[field.name] = value;
|
|
29
|
+
if (field.type === "phone") {
|
|
30
|
+
acc[(0, _phone.phoneCountryFieldName)(field.name)] = (0, _libphonenumberJs.parsePhoneNumberFromString)(value)?.country ?? field.defaultCountry;
|
|
31
|
+
}
|
|
26
32
|
return acc;
|
|
27
33
|
}, {});
|
|
28
34
|
return {
|
|
@@ -32,7 +38,14 @@ const ProfileFormProvider = ({
|
|
|
32
38
|
}, [fields]);
|
|
33
39
|
const validationSchema = _react.default.useMemo(() => {
|
|
34
40
|
const fieldRules = fields.reduce((acc, field) => {
|
|
35
|
-
|
|
41
|
+
const validation = field.validation ?? Yup.string();
|
|
42
|
+
acc[field.name] = field.type === "phone" ? validation.test("phone-country", "profile.form.phone.invalid", function validatePhone(value) {
|
|
43
|
+
if (!value) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
const country = this.parent[(0, _phone.phoneCountryFieldName)(field.name)] ?? field.defaultCountry;
|
|
47
|
+
return (0, _phone.isPhoneValidForCountry)(value, country);
|
|
48
|
+
}) : validation;
|
|
36
49
|
return acc;
|
|
37
50
|
}, {});
|
|
38
51
|
return Yup.object().shape(fieldRules);
|
|
@@ -43,32 +56,39 @@ const ProfileFormProvider = ({
|
|
|
43
56
|
validateOnBlur: true,
|
|
44
57
|
validationSchema,
|
|
45
58
|
onSubmit: async (values, formikHelpers) => {
|
|
59
|
+
const submittedValues = fields.reduce((submitted, field) => {
|
|
60
|
+
submitted[field.name] = values[field.name] ?? "";
|
|
61
|
+
return submitted;
|
|
62
|
+
}, {});
|
|
46
63
|
if (onSubmit) {
|
|
47
|
-
return onSubmit(
|
|
64
|
+
return onSubmit(submittedValues, formikHelpers);
|
|
48
65
|
}
|
|
49
66
|
try {
|
|
50
|
-
const
|
|
67
|
+
const activeProfile = await client.getProfileAsync();
|
|
68
|
+
const patient = activeProfile;
|
|
69
|
+
const operations = fields.flatMap(field => {
|
|
51
70
|
const value = values[field.name];
|
|
71
|
+
if (field.toPatch) {
|
|
72
|
+
return field.toPatch(value ?? "", patient);
|
|
73
|
+
}
|
|
52
74
|
const initialValue = initialValues[field.name];
|
|
53
75
|
const op = (0, _core.getPatchOperationType)(initialValue, value);
|
|
54
76
|
if (!op) {
|
|
55
|
-
return
|
|
77
|
+
return [];
|
|
56
78
|
}
|
|
57
79
|
let path = `/${field.name}`;
|
|
58
80
|
if (field.name.includes("[")) {
|
|
59
81
|
path = `/${field.name.split(/[[\].]/).filter(Boolean).join("/")}`;
|
|
60
82
|
}
|
|
61
|
-
return {
|
|
83
|
+
return [{
|
|
62
84
|
op,
|
|
63
85
|
path,
|
|
64
86
|
value
|
|
65
|
-
};
|
|
87
|
+
}];
|
|
66
88
|
});
|
|
67
|
-
const
|
|
68
|
-
const activeProfile = await client.getProfileAsync();
|
|
69
|
-
const response = await client.patchResource("Patient", activeProfile?.id ?? "", filteredOperations);
|
|
89
|
+
const response = await client.patchResource("Patient", activeProfile?.id ?? "", operations.filter(op => op.path !== "/submit"));
|
|
70
90
|
client.refetchProfile();
|
|
71
|
-
onSuccess?.(response);
|
|
91
|
+
onSuccess?.(response, submittedValues);
|
|
72
92
|
} catch (error) {
|
|
73
93
|
if (error instanceof Error) {
|
|
74
94
|
formikHelpers.setFieldError("submit", error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","_formik","_react","_interopRequireDefault","Yup","_interopRequireWildcard","_useShallowStableValue","_profileFormContext","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProfileFormProvider","children","fields","onSubmit","onSuccess","client","useClient","initialValues","React","useMemo","values","reduce","acc","field","name","
|
|
1
|
+
{"version":3,"names":["_core","require","_formik","_libphonenumberJs","_react","_interopRequireDefault","Yup","_interopRequireWildcard","_useShallowStableValue","_profileFormContext","_phone","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProfileFormProvider","children","fields","onSubmit","onSuccess","client","useClient","initialValues","React","useMemo","values","reduce","acc","field","value","type","toPhoneE164","defaultCountry","name","phoneCountryFieldName","parsePhoneNumberFromString","country","submit","validationSchema","fieldRules","validation","string","test","validatePhone","parent","isPhoneValidForCountry","object","shape","formik","useFormik","enableReinitialize","validateOnBlur","formikHelpers","submittedValues","submitted","activeProfile","getProfileAsync","patient","operations","flatMap","toPatch","initialValue","op","getPatchOperationType","path","includes","split","filter","Boolean","join","response","patchResource","id","refetchProfile","error","Error","setFieldError","message","contextValue","useShallowStableValue","jsx","ProfileFormContext","Provider","exports"],"sourceRoot":"../../../../../../src","sources":["modules/auth/profile/components/profile-form-provider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.toPhoneE164 = exports.phoneCountryFieldName = exports.isPhoneValidForCountry = void 0;
|
|
7
|
+
var _libphonenumberJs = require("libphonenumber-js");
|
|
8
|
+
const phoneCountryFieldName = name => `__profileFormPhoneCountry__${encodeURIComponent(name).replace(/\./g, "%2E")}`;
|
|
9
|
+
exports.phoneCountryFieldName = phoneCountryFieldName;
|
|
10
|
+
const toPhoneE164 = (value, country) => {
|
|
11
|
+
const input = value.trim();
|
|
12
|
+
if (!input) {
|
|
13
|
+
return "";
|
|
14
|
+
}
|
|
15
|
+
const parsed = (0, _libphonenumberJs.parsePhoneNumberFromString)(input, country);
|
|
16
|
+
if (parsed) {
|
|
17
|
+
return parsed.number;
|
|
18
|
+
}
|
|
19
|
+
if (input.startsWith("+")) {
|
|
20
|
+
return input;
|
|
21
|
+
}
|
|
22
|
+
const digits = input.replace(/\D/g, "");
|
|
23
|
+
return digits ? `+${(0, _libphonenumberJs.getCountryCallingCode)(country)}${digits}` : "";
|
|
24
|
+
};
|
|
25
|
+
exports.toPhoneE164 = toPhoneE164;
|
|
26
|
+
const isPhoneValidForCountry = (value, country) => {
|
|
27
|
+
const parsed = (0, _libphonenumberJs.parsePhoneNumberFromString)(value);
|
|
28
|
+
return parsed?.isValid() === true && parsed.country === country;
|
|
29
|
+
};
|
|
30
|
+
exports.isPhoneValidForCountry = isPhoneValidForCountry;
|
|
31
|
+
//# sourceMappingURL=phone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_libphonenumberJs","require","phoneCountryFieldName","name","encodeURIComponent","replace","exports","toPhoneE164","value","country","input","trim","parsed","parsePhoneNumberFromString","number","startsWith","digits","getCountryCallingCode","isPhoneValidForCountry","isValid"],"sourceRoot":"../../../../../../src","sources":["modules/auth/profile/utils/phone.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAMA,MAAMC,qBAAqB,GAAIC,IAAY,IACzC,8BAA8BC,kBAAkB,CAACD,IAAI,CAAC,CAACE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA;AAEjF,MAAMK,WAAW,GAAGA,CAACC,KAAa,EAAEC,OAAoB,KAAK;EAC3D,MAAMC,KAAK,GAAGF,KAAK,CAACG,IAAI,CAAC,CAAC;EAE1B,IAAI,CAACD,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EAEA,MAAME,MAAM,GAAG,IAAAC,4CAA0B,EAACH,KAAK,EAAED,OAAO,CAAC;EAEzD,IAAIG,MAAM,EAAE;IACV,OAAOA,MAAM,CAACE,MAAM;EACtB;EAEA,IAAIJ,KAAK,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;IACzB,OAAOL,KAAK;EACd;EAEA,MAAMM,MAAM,GAAGN,KAAK,CAACL,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAEvC,OAAOW,MAAM,GAAG,IAAI,IAAAC,uCAAqB,EAACR,OAAO,CAAC,GAAGO,MAAM,EAAE,GAAG,EAAE;AACpE,CAAC;AAACV,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAEF,MAAMW,sBAAsB,GAAGA,CAACV,KAAa,EAAEC,OAAoB,KAAK;EACtE,MAAMG,MAAM,GAAG,IAAAC,4CAA0B,EAACL,KAAK,CAAC;EAEhD,OAAOI,MAAM,EAAEO,OAAO,CAAC,CAAC,KAAK,IAAI,IAAIP,MAAM,CAACH,OAAO,KAAKA,OAAO;AACjE,CAAC;AAACH,OAAA,CAAAY,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -26,11 +26,15 @@ const Inputs = ({
|
|
|
26
26
|
const theme = (0, _index2.useAppTheme)();
|
|
27
27
|
const {
|
|
28
28
|
defaultValues,
|
|
29
|
-
handleSubmit
|
|
29
|
+
handleSubmit,
|
|
30
|
+
setFieldValue,
|
|
31
|
+
nameField,
|
|
32
|
+
toRegisterNames
|
|
30
33
|
} = (0, _useRegisterForm.useRegisterForm)();
|
|
31
34
|
const [showPassword, setShowPassword] = React.useState(false);
|
|
32
35
|
const [showPasswordConfirm, setShowPasswordConfirm] = React.useState(false);
|
|
33
36
|
const nameRef = React.useRef(null);
|
|
37
|
+
const fullNameRef = React.useRef(null);
|
|
34
38
|
const surnameRef = React.useRef(null);
|
|
35
39
|
const emailRef = React.useRef(null);
|
|
36
40
|
const passwordRef = React.useRef(null);
|
|
@@ -49,7 +53,31 @@ const Inputs = ({
|
|
|
49
53
|
}, style],
|
|
50
54
|
testID: testID,
|
|
51
55
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Conditional, {
|
|
52
|
-
condition: !defaultValues?.name,
|
|
56
|
+
condition: nameField === "single" && !defaultValues?.fullName && !(defaultValues?.name && defaultValues?.surname),
|
|
57
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.FormField, {
|
|
58
|
+
label: t("register.full-name"),
|
|
59
|
+
name: "fullName",
|
|
60
|
+
context: _registerFormContext.RegisterFormContext,
|
|
61
|
+
...inputProps,
|
|
62
|
+
inputRef: fullNameRef,
|
|
63
|
+
autoFocus: inputProps?.autoFocus ?? true,
|
|
64
|
+
returnKeyType: inputProps?.returnKeyType ?? "next",
|
|
65
|
+
onChangeText: fullName => {
|
|
66
|
+
void setFieldValue("fullName", fullName);
|
|
67
|
+
const names = toRegisterNames?.(fullName);
|
|
68
|
+
if (names) {
|
|
69
|
+
void setFieldValue("name", names.name);
|
|
70
|
+
void setFieldValue("surname", names.surname);
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
onSubmitEditing: event => {
|
|
74
|
+
inputProps?.onSubmitEditing?.(event);
|
|
75
|
+
submitOrFocus(emailRef, passwordRef, passwordConfirmRef);
|
|
76
|
+
},
|
|
77
|
+
style: inputProps?.containerStyle
|
|
78
|
+
})
|
|
79
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Conditional, {
|
|
80
|
+
condition: nameField !== "single" && !defaultValues?.name,
|
|
53
81
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.FormField, {
|
|
54
82
|
label: t("register.name"),
|
|
55
83
|
name: "name",
|
|
@@ -65,7 +93,7 @@ const Inputs = ({
|
|
|
65
93
|
style: inputProps?.containerStyle
|
|
66
94
|
})
|
|
67
95
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Conditional, {
|
|
68
|
-
condition: !defaultValues?.surname,
|
|
96
|
+
condition: nameField !== "single" && !defaultValues?.surname,
|
|
69
97
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.FormField, {
|
|
70
98
|
label: t("register.surname"),
|
|
71
99
|
name: "surname",
|
|
@@ -90,7 +118,7 @@ const Inputs = ({
|
|
|
90
118
|
context: _registerFormContext.RegisterFormContext,
|
|
91
119
|
...inputProps,
|
|
92
120
|
inputRef: emailRef,
|
|
93
|
-
autoFocus: inputProps?.autoFocus ?? (!!defaultValues?.name && !!defaultValues?.surname),
|
|
121
|
+
autoFocus: inputProps?.autoFocus ?? (nameField === "single" ? !!defaultValues?.fullName || !!defaultValues?.name && !!defaultValues?.surname : !!defaultValues?.name && !!defaultValues?.surname),
|
|
94
122
|
returnKeyType: inputProps?.returnKeyType ?? "next",
|
|
95
123
|
onSubmitEditing: event => {
|
|
96
124
|
inputProps?.onSubmitEditing?.(event);
|