@movalib/movalib-commons 1.2.14 → 1.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,6 +23,7 @@ interface MovaSignUpProps {
23
23
  showCopyright?: boolean;
24
24
  showLoginButton?: boolean;
25
25
  disableGutters?: boolean;
26
+ usePhoneNumber?: boolean;
26
27
  }
27
28
  /**
28
29
  * Formulaire de création d'un compte Movalib (Garage / Utilisateur)
@@ -69,7 +69,6 @@ var InputAdornment_1 = __importDefault(require("@mui/material/InputAdornment"));
69
69
  var Visibility_1 = __importDefault(require("@mui/icons-material/Visibility"));
70
70
  var VisibilityOff_1 = __importDefault(require("@mui/icons-material/VisibilityOff"));
71
71
  var Info_1 = __importDefault(require("@mui/icons-material/Info"));
72
- var Logger_1 = __importDefault(require("./helpers/Logger"));
73
72
  // ATTENTION : s'assurer de la présence des documents suivants à la racine du composant porteur (dossier 'public')
74
73
  var CGUPath = "/Movalib_CGU.pdf";
75
74
  // Permet de centrer le contenu de l'application
@@ -93,14 +92,14 @@ var initialUserFormState = {
93
92
  * ATTENTION : le lien de consultation des CGU doit pointer vers "/terms-and-conditions"
94
93
  */
95
94
  var MovaLogin = function (_a) {
96
- var loading = _a.loading, movaAppType = _a.movaAppType, onSubmit = _a.onSubmit, _b = _a.darkMode, darkMode = _b === void 0 ? false : _b, alertMessage = _a.alertMessage, alertSeverity = _a.alertSeverity, headerText = _a.headerText, _c = _a.showHeaderLogo, showHeaderLogo = _c === void 0 ? true : _c, _d = _a.showLeafs, showLeafs = _d === void 0 ? true : _d, _e = _a.showCopyright, showCopyright = _e === void 0 ? true : _e, _f = _a.showLoginButton, showLoginButton = _f === void 0 ? true : _f, _g = _a.disableGutters, disableGutters = _g === void 0 ? false : _g;
97
- var _h = (0, react_1.useState)(initialUserFormState), userForm = _h[0], setUserForm = _h[1];
95
+ var loading = _a.loading, movaAppType = _a.movaAppType, onSubmit = _a.onSubmit, _b = _a.darkMode, darkMode = _b === void 0 ? false : _b, alertMessage = _a.alertMessage, alertSeverity = _a.alertSeverity, headerText = _a.headerText, _c = _a.showHeaderLogo, showHeaderLogo = _c === void 0 ? true : _c, _d = _a.showLeafs, showLeafs = _d === void 0 ? true : _d, _e = _a.showCopyright, showCopyright = _e === void 0 ? true : _e, _f = _a.showLoginButton, showLoginButton = _f === void 0 ? true : _f, _g = _a.disableGutters, disableGutters = _g === void 0 ? false : _g, _h = _a.usePhoneNumber, usePhoneNumber = _h === void 0 ? true : _h;
96
+ var _j = (0, react_1.useState)(initialUserFormState), userForm = _j[0], setUserForm = _j[1];
98
97
  var history = (0, react_router_dom_1.useHistory)();
99
- var _j = (0, react_1.useState)(""), message = _j[0], setMessage = _j[1];
98
+ var _k = (0, react_1.useState)(""), message = _k[0], setMessage = _k[1];
100
99
  var theme = (0, material_1.useTheme)();
101
- var _k = (0, react_1.useState)(false), showPassword = _k[0], setShowPassword = _k[1];
102
- var _l = (0, react_1.useState)(false), openEmailInfo = _l[0], setOpenEmailInfo = _l[1];
103
- var _m = (0, react_1.useState)(false), openPhoneNumberInfo = _m[0], setOpenPhoneNumberInfo = _m[1];
100
+ var _l = (0, react_1.useState)(false), showPassword = _l[0], setShowPassword = _l[1];
101
+ var _m = (0, react_1.useState)(false), openEmailInfo = _m[0], setOpenEmailInfo = _m[1];
102
+ var _o = (0, react_1.useState)(false), openPhoneNumberInfo = _o[0], setOpenPhoneNumberInfo = _o[1];
104
103
  var handleDateChange = function (name, date) {
105
104
  var _a;
106
105
  if (name && date) {
@@ -170,7 +169,8 @@ var MovaLogin = function (_a) {
170
169
  newForm.firstname = (0, Tools_1.validateField)(userForm.firstname, function (value) { return !!value; }, 'Champ obligatoire');
171
170
  newForm.lastname = (0, Tools_1.validateField)(userForm.lastname, function (value) { return !!value; }, 'Champ obligatoire');
172
171
  newForm.email = (0, Tools_1.validateField)(userForm.email, function (value) { return !!value; }, 'Champ obligatoire');
173
- newForm.phoneNumber = (0, Tools_1.validateField)(userForm.phoneNumber, function (value) { return !!value; }, 'Champ obligatoire');
172
+ if (usePhoneNumber)
173
+ newForm.phoneNumber = (0, Tools_1.validateField)(userForm.phoneNumber, function (value) { return !!value; }, 'Champ obligatoire');
174
174
  newForm.password = (0, Tools_1.validateField)(userForm.password, function (value) { return !!value; }, 'Champ obligatoire');
175
175
  //newForm.gender = validateField(userForm.gender, value => !!value, 'Champ obligatoire');
176
176
  //newForm.birthDate = validateField(userForm.birthDate, value => !!value && isValid(value), 'Champ obligatoire');
@@ -179,13 +179,13 @@ var MovaLogin = function (_a) {
179
179
  // Validator pour le mot de passe
180
180
  newForm.password = (0, Tools_1.validateField)(userForm.password, function (value) { return value.length >= 10 && /[a-z]/.test(value) && /[A-Z]/.test(value); }, 'Votre mot de passe doit faire au moins 10 caractères de long, contenir au moins une majuscule et une minuscule');
181
181
  // Validator 'phoneNumber'
182
- newForm.phoneNumber = (0, Tools_1.validateField)(userForm.phoneNumber, Validator_1.validatePhoneNumber, "Le n° de téléphone est invalide.");
183
- Logger_1.default.info(newForm.phoneNumber === null || newForm.phoneNumber === undefined);
182
+ if (usePhoneNumber)
183
+ newForm.phoneNumber = (0, Tools_1.validateField)(userForm.phoneNumber, Validator_1.validatePhoneNumber, "Le de téléphone est invalide.");
184
184
  // Validator pour les CGU
185
185
  newForm.acceptsTerms = (0, Tools_1.validateField)(userForm.acceptsTerms, function (value) { return Boolean(value); }, 'Vous devez accepter les termes de nos CGU');
186
186
  setUserForm(newForm);
187
187
  return newForm.firstname.isValid && newForm.lastname.isValid && newForm.email.isValid && newForm.password.isValid
188
- && newForm.acceptsTerms.isValid && newForm.phoneNumber.isValid;
188
+ && newForm.acceptsTerms.isValid && (usePhoneNumber ? newForm.phoneNumber.isValid : true);
189
189
  };
190
190
  var getMovaLogo = function () {
191
191
  if (darkMode) {
@@ -221,7 +221,7 @@ var MovaLogin = function (_a) {
221
221
  display: 'flex',
222
222
  flexDirection: 'column',
223
223
  alignItems: 'center',
224
- } }, { children: [showHeaderLogo && (0, jsx_runtime_1.jsx)("img", { src: getMovaLogo(), style: { width: '60%' } }), headerText && (0, jsx_runtime_1.jsx)(material_1.Typography, __assign({ variant: "button", sx: { pt: 3, width: '100%' } }, { children: headerText }))] })), (0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ component: "form", onSubmit: handleSubmit, noValidate: true, sx: { mt: 2 } }, { children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { margin: "normal", required: true, autoFocus: true, fullWidth: true, id: "firstname", label: "Pr\u00E9nom", name: "firstname", autoComplete: "given-name", onChange: function (e) { return handleInputChange(e); }, value: userForm.firstname.value, error: Boolean(userForm.firstname.error), helperText: userForm.firstname.error, sx: {
224
+ } }, { children: [showHeaderLogo && (0, jsx_runtime_1.jsx)("img", { src: getMovaLogo(), style: { width: '60%' } }), headerText && (0, jsx_runtime_1.jsx)(material_1.Typography, __assign({ variant: "button", sx: { pt: 3, width: '100%' } }, { children: headerText }))] })), (0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ component: "form", onSubmit: handleSubmit, noValidate: true, sx: { mt: headerText ? 2 : 0 } }, { children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { margin: "normal", required: true, autoFocus: true, fullWidth: true, id: "firstname", label: "Pr\u00E9nom", name: "firstname", autoComplete: "given-name", onChange: function (e) { return handleInputChange(e); }, value: userForm.firstname.value, error: Boolean(userForm.firstname.error), helperText: userForm.firstname.error, sx: {
225
225
  '& .MuiOutlinedInput-notchedOutline': {
226
226
  borderColor: darkMode ? 'white' : 'default', // Couleur de la bordure
227
227
  }
@@ -229,9 +229,9 @@ var MovaLogin = function (_a) {
229
229
  '& .MuiOutlinedInput-notchedOutline': {
230
230
  borderColor: darkMode ? 'white' : 'default', // Couleur de la bordure
231
231
  }
232
- } }), (0, jsx_runtime_1.jsx)(material_1.TextField, { type: "tel", margin: "normal", required: true, fullWidth: true, id: "phoneNumber", label: "N\u00B0 de t\u00E9l\u00E9phone", name: "phoneNumber", autoComplete: "tel", onChange: function (e) { return handleInputChange(e); }, value: userForm.phoneNumber.value, error: Boolean(userForm.phoneNumber.error), helperText: userForm.phoneNumber.error, InputProps: {
233
- endAdornment: ((0, jsx_runtime_1.jsx)(InputAdornment_1.default, __assign({ position: "end" }, { children: (0, jsx_runtime_1.jsx)(material_1.IconButton, __assign({ edge: "end", onClick: function () { return setOpenPhoneNumberInfo(!openPhoneNumberInfo); } }, { children: (0, jsx_runtime_1.jsx)(Info_1.default, {}) })) }))),
234
- } }), openPhoneNumberInfo && (0, jsx_runtime_1.jsx)(material_1.Alert, __assign({ severity: "info", variant: 'standard' }, { children: "Indispensable pour votre garagiste, il doit pouvoir vous appeler en cas d'impr\u00E9vu avec votre v\u00E9hicule." })), (0, jsx_runtime_1.jsx)(material_1.TextField, { margin: "normal", required: true, fullWidth: true, id: "email", label: "Adresse email", name: "email", autoComplete: "email", onChange: function (e) { return handleInputChange(e); }, value: userForm.email.value, error: !userForm.email.isValid, helperText: userForm.email.error, sx: {
232
+ } }), usePhoneNumber && (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { type: "tel", margin: "normal", required: true, fullWidth: true, id: "phoneNumber", label: "N\u00B0 de t\u00E9l\u00E9phone", name: "phoneNumber", autoComplete: "tel", onChange: function (e) { return handleInputChange(e); }, value: userForm.phoneNumber.value, error: Boolean(userForm.phoneNumber.error), helperText: userForm.phoneNumber.error, InputProps: {
233
+ endAdornment: ((0, jsx_runtime_1.jsx)(InputAdornment_1.default, __assign({ position: "end" }, { children: (0, jsx_runtime_1.jsx)(material_1.IconButton, __assign({ edge: "end", onClick: function () { return setOpenPhoneNumberInfo(!openPhoneNumberInfo); } }, { children: (0, jsx_runtime_1.jsx)(Info_1.default, {}) })) }))),
234
+ } }), openPhoneNumberInfo && (0, jsx_runtime_1.jsx)(material_1.Alert, __assign({ severity: "info", variant: 'standard' }, { children: "Indispensable pour votre garagiste, il doit pouvoir vous appeler en cas d'impr\u00E9vu avec votre v\u00E9hicule." }))] }), (0, jsx_runtime_1.jsx)(material_1.TextField, { margin: "normal", required: true, fullWidth: true, id: "email", label: "Adresse email", name: "email", autoComplete: "email", onChange: function (e) { return handleInputChange(e); }, value: userForm.email.value, error: !userForm.email.isValid, helperText: userForm.email.error, sx: {
235
235
  '& .MuiOutlinedInput-notchedOutline': {
236
236
  borderColor: darkMode ? 'white' : 'default', // Couleur de la bordure
237
237
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@movalib/movalib-commons",
3
- "version": "1.2.14",
3
+ "version": "1.2.16",
4
4
  "description": "Bibliothèque d'objets communs à l'ensemble des projets React de Movalib",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -64,7 +64,8 @@ interface MovaSignUpProps {
64
64
  showLeafs?: boolean,
65
65
  showCopyright?: boolean,
66
66
  showLoginButton?: boolean,
67
- disableGutters?: boolean
67
+ disableGutters?: boolean,
68
+ usePhoneNumber?: boolean
68
69
  }
69
70
 
70
71
  /**
@@ -72,7 +73,7 @@ interface MovaSignUpProps {
72
73
  * ATTENTION : le lien de consultation des CGU doit pointer vers "/terms-and-conditions"
73
74
  */
74
75
  const MovaLogin: FunctionComponent<MovaSignUpProps> = ({ loading, movaAppType, onSubmit, darkMode = false, alertMessage, alertSeverity, headerText,
75
- showHeaderLogo = true, showLeafs= true, showCopyright = true, showLoginButton = true, disableGutters = false}) => {
76
+ showHeaderLogo = true, showLeafs= true, showCopyright = true, showLoginButton = true, disableGutters = false, usePhoneNumber = true}) => {
76
77
 
77
78
  const [userForm, setUserForm] = useState<MovaUserSignUpForm>(initialUserFormState);
78
79
  const history = useHistory();
@@ -160,9 +161,9 @@ const MovaLogin: FunctionComponent<MovaSignUpProps> = ({ loading, movaAppType, o
160
161
  newForm.firstname = validateField(userForm.firstname, value => !!value, 'Champ obligatoire');
161
162
  newForm.lastname = validateField(userForm.lastname, value => !!value, 'Champ obligatoire');
162
163
  newForm.email = validateField(userForm.email, value => !!value, 'Champ obligatoire');
163
- newForm.phoneNumber = validateField(userForm.phoneNumber, value => !!value, 'Champ obligatoire');
164
-
165
164
 
165
+ if(usePhoneNumber)
166
+ newForm.phoneNumber = validateField(userForm.phoneNumber, value => !!value, 'Champ obligatoire');
166
167
 
167
168
  newForm.password = validateField(userForm.password, value => !!value, 'Champ obligatoire');
168
169
  //newForm.gender = validateField(userForm.gender, value => !!value, 'Champ obligatoire');
@@ -177,15 +178,16 @@ const MovaLogin: FunctionComponent<MovaSignUpProps> = ({ loading, movaAppType, o
177
178
  'Votre mot de passe doit faire au moins 10 caractères de long, contenir au moins une majuscule et une minuscule');
178
179
 
179
180
  // Validator 'phoneNumber'
180
- newForm.phoneNumber = validateField(userForm.phoneNumber, validatePhoneNumber, "Le n° de téléphone est invalide.");
181
- Logger.info(newForm.phoneNumber === null || newForm.phoneNumber === undefined);
181
+ if(usePhoneNumber)
182
+ newForm.phoneNumber = validateField(userForm.phoneNumber, validatePhoneNumber, "Le de téléphone est invalide.");
183
+
182
184
  // Validator pour les CGU
183
185
  newForm.acceptsTerms = validateField(userForm.acceptsTerms, value => Boolean(value), 'Vous devez accepter les termes de nos CGU');
184
186
 
185
187
  setUserForm(newForm);
186
188
 
187
189
  return newForm.firstname.isValid && newForm.lastname.isValid && newForm.email.isValid && newForm.password.isValid
188
- && newForm.acceptsTerms.isValid && newForm.phoneNumber.isValid;
190
+ && newForm.acceptsTerms.isValid && (usePhoneNumber ? newForm.phoneNumber.isValid : true);
189
191
  }
190
192
 
191
193
  const getMovaLogo = () => {
@@ -237,7 +239,7 @@ const MovaLogin: FunctionComponent<MovaSignUpProps> = ({ loading, movaAppType, o
237
239
  {headerText && <Typography variant="button" sx={{ pt: 3, width:'100%' }}>{headerText}</Typography>}
238
240
  </Box>
239
241
 
240
- <Box component="form" onSubmit={handleSubmit} noValidate sx={{ mt: 2 }}>
242
+ <Box component="form" onSubmit={handleSubmit} noValidate sx={{ mt: headerText ? 2 : 0 }}>
241
243
  <TextField
242
244
  margin="normal"
243
245
  required
@@ -275,7 +277,7 @@ const MovaLogin: FunctionComponent<MovaSignUpProps> = ({ loading, movaAppType, o
275
277
  }
276
278
  }}
277
279
  />
278
- <TextField
280
+ {usePhoneNumber && <><TextField
279
281
  type="tel"
280
282
  margin="normal"
281
283
  required
@@ -301,6 +303,8 @@ const MovaLogin: FunctionComponent<MovaSignUpProps> = ({ loading, movaAppType, o
301
303
  }}
302
304
  />
303
305
  {openPhoneNumberInfo && <Alert severity="info" variant='standard'>Indispensable pour votre garagiste, il doit pouvoir vous appeler en cas d'imprévu avec votre véhicule.</Alert>}
306
+ </>
307
+ }
304
308
  <TextField
305
309
  margin="normal"
306
310
  required