ublo-lib 1.39.6 → 1.39.8
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.
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
type Field = "subject" | "firstname" | "lastname" | "email" | "phone" | "country" | "category" | "stayFrom" | "stayTo" | "message";
|
|
1
2
|
type Props = {
|
|
2
3
|
lang: "fr" | "en";
|
|
3
4
|
channel: string;
|
|
@@ -13,7 +14,8 @@ type Props = {
|
|
|
13
14
|
en?: Record<string, string>;
|
|
14
15
|
};
|
|
15
16
|
hideOptionalStayFields?: boolean;
|
|
17
|
+
hiddenFields?: Field[];
|
|
16
18
|
};
|
|
17
|
-
export default function GescoContactForm({ lang, channel, resort, merchant, categories, subject, facet, host, onSubmit, messagesOverrides, hideOptionalStayFields, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export default function GescoContactForm({ lang, channel, resort, merchant, categories, subject, facet, host, onSubmit, messagesOverrides, hideOptionalStayFields, hiddenFields, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
18
20
|
export {};
|
|
19
21
|
//# sourceMappingURL=gesco-contact-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gesco-contact-form.d.ts","sourceRoot":"","sources":["../../../../src/common/components/gesco-contact-form/gesco-contact-form.tsx"],"names":[],"mappings":"AAgBA,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,IAAI,CAAC,EACD,0CAA0C,GAC1C,sDAAsD,GACtD,8CAA8C,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7B,CAAC;IACF,sBAAsB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"gesco-contact-form.d.ts","sourceRoot":"","sources":["../../../../src/common/components/gesco-contact-form/gesco-contact-form.tsx"],"names":[],"mappings":"AAgBA,KAAK,KAAK,GACN,SAAS,GACT,WAAW,GACX,UAAU,GACV,OAAO,GACP,OAAO,GACP,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;AAEd,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,IAAI,CAAC,EACD,0CAA0C,GAC1C,sDAAsD,GACtD,8CAA8C,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7B,CAAC;IACF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAW,EACX,OAAe,EACf,MAAM,EACN,QAAQ,EACR,UAAU,EACV,OAAO,EACP,KAAgB,EAChB,IAAiD,EACjD,QAAQ,EACR,iBAAsB,EACtB,sBAAsB,EACtB,YAAiB,GAClB,EAAE,KAAK,2CAiSP"}
|
|
@@ -14,7 +14,7 @@ import * as Form from "./services/form";
|
|
|
14
14
|
import * as API from "./services/api";
|
|
15
15
|
import * as Plausible from "./services/plausible";
|
|
16
16
|
import styles from "./gesco-contact-form.module.css";
|
|
17
|
-
export default function GescoContactForm({ lang = "fr", channel = "ESF", resort, merchant, categories, subject, facet = "WINTER", host = "https://admin.mon-sejour-en-montagne.com", onSubmit, messagesOverrides = {}, hideOptionalStayFields, }) {
|
|
17
|
+
export default function GescoContactForm({ lang = "fr", channel = "ESF", resort, merchant, categories, subject, facet = "WINTER", host = "https://admin.mon-sejour-en-montagne.com", onSubmit, messagesOverrides = {}, hideOptionalStayFields, hiddenFields = [], }) {
|
|
18
18
|
const { params, error } = useParams({
|
|
19
19
|
lang,
|
|
20
20
|
channel,
|
|
@@ -41,10 +41,12 @@ export default function GescoContactForm({ lang = "fr", channel = "ESF", resort,
|
|
|
41
41
|
params?.categories?.length > 1;
|
|
42
42
|
const loading = !error && params === undefined;
|
|
43
43
|
const defaultCategoryValue = stayNeeded && params?.categories?.[0]?.code;
|
|
44
|
+
const defaultCountryValue = "FRA";
|
|
44
45
|
const messages = Messages.get(_lang, messagesOverrides);
|
|
45
46
|
const subjectOptions = formatOptions("label", "id", params?.subjects);
|
|
46
47
|
const categoryOptions = formatOptions("label", "code", params?.categories);
|
|
47
48
|
const countryOptions = formatOptions("name", "code", params?.countries);
|
|
49
|
+
const isHidden = (field) => hiddenFields.includes(field);
|
|
48
50
|
const submitForm = async (e) => {
|
|
49
51
|
e.preventDefault();
|
|
50
52
|
setSubmiting(true);
|
|
@@ -55,6 +57,9 @@ export default function GescoContactForm({ lang = "fr", channel = "ESF", resort,
|
|
|
55
57
|
if (!values.category && defaultCategoryValue) {
|
|
56
58
|
values = { ...values, category: defaultCategoryValue };
|
|
57
59
|
}
|
|
60
|
+
if (isHidden("country")) {
|
|
61
|
+
values = { ...values, country: defaultCountryValue };
|
|
62
|
+
}
|
|
58
63
|
if (subject) {
|
|
59
64
|
values = { ...values, subject };
|
|
60
65
|
}
|
|
@@ -99,15 +104,15 @@ export default function GescoContactForm({ lang = "fr", channel = "ESF", resort,
|
|
|
99
104
|
const updateStayFromMax = (value) => {
|
|
100
105
|
setStayFromMax(value);
|
|
101
106
|
};
|
|
102
|
-
return (_jsxs("form", { className: styles.form, onSubmit: submitForm, children: [!subject && (_jsx(Select, { name: "subject", label: messages.subject, className: styles.fullWidthField, placeholder: messages.defaultSubject, options: subjectOptions, disabled: Boolean(error) || loading, onValueChange: checkIfStayIsNeeded, required: true })), _jsx(Input, { name: "firstname", type: "text", icon: "User", label: messages.firstname, pattern: ".{2,}", patternError: Messages.format(messages.lengthError, {
|
|
107
|
+
return (_jsxs("form", { className: styles.form, onSubmit: submitForm, children: [!isHidden("subject") && !subject && (_jsx(Select, { name: "subject", label: messages.subject, className: styles.fullWidthField, placeholder: messages.defaultSubject, options: subjectOptions, disabled: Boolean(error) || loading, onValueChange: checkIfStayIsNeeded, required: true })), !isHidden("firstname") && (_jsx(Input, { name: "firstname", type: "text", icon: "User", label: messages.firstname, pattern: ".{2,}", patternError: Messages.format(messages.lengthError, {
|
|
103
108
|
label: messages.firstname,
|
|
104
109
|
length: "1",
|
|
105
|
-
}), disabled: Boolean(error) || loading, required: true }), _jsx(Input, { name: "lastname", type: "text", icon: "User", label: messages.lastname, pattern: ".{2,}", patternError: Messages.format(messages.lengthError, {
|
|
110
|
+
}), disabled: Boolean(error) || loading, required: true })), !isHidden("lastname") && (_jsx(Input, { name: "lastname", type: "text", icon: "User", label: messages.lastname, pattern: ".{2,}", patternError: Messages.format(messages.lengthError, {
|
|
106
111
|
label: messages.lastname,
|
|
107
112
|
length: "1",
|
|
108
|
-
}), disabled: Boolean(error) || loading, required: true }), _jsx(Input, { name: "email", type: "email", icon: "Mail", label: messages.email, pattern: "[^@\\s]+@[^@\\s]+\\.[^@\\s]+", patternError: messages.emailError, disabled: Boolean(error) || loading, required: true }), _jsxs("div", { className: styles.phoneGroup, children: [_jsx(PhoneCodeSelect, { messages: messages, disabled: Boolean(error) || loading }), _jsx(Input, { name: "phone", type: "phone", className: styles.phoneField, label: messages.phone, inputMode: "numeric", pattern: "[0-9 ]{9,15}$", patternError: messages.phoneError, disabled: Boolean(error) || loading, required: true })] }), _jsx(Select, { name: "country", icon: "Globe", label: messages.country, className: styles.fullWidthField, placeholder: messages.defaultCountry, options: countryOptions, disabled: Boolean(error) || loading, required: true }), needCategory && (_jsx(Select, { name: "category", icon: "Plane", label: messages.category, className: styles.fullWidthField, placeholder: messages.defaultCategory, options: categoryOptions, disabled: Boolean(error) || loading, required: true })), (stayNeeded || (!stayNeeded && !hideOptionalStayFields)) && (_jsxs(_Fragment, { children: [_jsx(Input, { name: "stayFrom", className: styles.stayField, type: "date", label: messages.stayFromDate, placeholder: messages.dateFormat, onValueChange: updateStayToMin, hint: stayFromMax, min: stayMin, max: stayFromMax, disabled: Boolean(error) || loading, patternError: Messages.format(messages.mandatoryError, {
|
|
113
|
+
}), disabled: Boolean(error) || loading, required: true })), !isHidden("email") && (_jsx(Input, { name: "email", type: "email", icon: "Mail", label: messages.email, pattern: "[^@\\s]+@[^@\\s]+\\.[^@\\s]+", patternError: messages.emailError, disabled: Boolean(error) || loading, required: true })), !isHidden("phone") && (_jsxs("div", { className: styles.phoneGroup, children: [_jsx(PhoneCodeSelect, { messages: messages, disabled: Boolean(error) || loading }), _jsx(Input, { name: "phone", type: "phone", className: styles.phoneField, label: messages.phone, inputMode: "numeric", pattern: "[0-9 ]{9,15}$", patternError: messages.phoneError, disabled: Boolean(error) || loading, required: true })] })), !isHidden("country") && (_jsx(Select, { name: "country", icon: "Globe", label: messages.country, className: styles.fullWidthField, placeholder: messages.defaultCountry, options: countryOptions, disabled: Boolean(error) || loading, required: true })), !isHidden("category") && needCategory && (_jsx(Select, { name: "category", icon: "Plane", label: messages.category, className: styles.fullWidthField, placeholder: messages.defaultCategory, options: categoryOptions, disabled: Boolean(error) || loading, required: true })), (stayNeeded || (!stayNeeded && !hideOptionalStayFields)) && (_jsxs(_Fragment, { children: [!isHidden("stayFrom") && (_jsx(Input, { name: "stayFrom", className: styles.stayField, type: "date", label: messages.stayFromDate, placeholder: messages.dateFormat, onValueChange: updateStayToMin, hint: stayFromMax, min: stayMin, max: stayFromMax, disabled: Boolean(error) || loading, patternError: Messages.format(messages.mandatoryError, {
|
|
109
114
|
label: messages.stayFrom,
|
|
110
|
-
}), required: stayNeeded, extended: true }), _jsx(Input, { name: "stayTo", className: styles.stayField, type: "date", label: messages.stayToDate, placeholder: messages.dateFormat, onValueChange: updateStayFromMax, hint: stayToMin, min: stayToMin || stayMin, disabled: Boolean(error) || loading, patternError: Messages.format(messages.mandatoryError, {
|
|
115
|
+
}), required: stayNeeded, extended: true })), !isHidden("stayTo") && (_jsx(Input, { name: "stayTo", className: styles.stayField, type: "date", label: messages.stayToDate, placeholder: messages.dateFormat, onValueChange: updateStayFromMax, hint: stayToMin, min: stayToMin || stayMin, disabled: Boolean(error) || loading, patternError: Messages.format(messages.mandatoryError, {
|
|
111
116
|
label: messages.stayTo,
|
|
112
|
-
}), required: stayNeeded, extended: true })] })), _jsx(Textarea, { name: "message", className: styles.fullWidthField, label: messages.message, disabled: Boolean(error) || loading, required: true, autoSizing: true }), _jsx("div", { className: styles.send, children: _jsxs(Button, { type: "submit", disabled: Boolean(error) || loading || submiting, children: [submiting ? _jsx(Loader, { className: styles.loader }) : _jsx(Icons.Plane, {}), messages.submit] }) }), sendSuccess && (_jsx(Information, { className: styles.response, type: "success", close: hideSuccess, children: messages.sendSucesss })), sendError && (_jsx(Information, { className: styles.response, type: "error", close: hideError, children: messages.sendError })), error && (_jsx(Information, { className: styles.error, type: "warning", children: messages.parametersError }))] }, formKey));
|
|
117
|
+
}), required: stayNeeded, extended: true }))] })), !isHidden("message") && (_jsx(Textarea, { name: "message", className: styles.fullWidthField, label: messages.message, disabled: Boolean(error) || loading, required: true, autoSizing: true })), _jsx("div", { className: styles.send, children: _jsxs(Button, { type: "submit", disabled: Boolean(error) || loading || submiting, children: [submiting ? _jsx(Loader, { className: styles.loader }) : _jsx(Icons.Plane, {}), messages.submit] }) }), sendSuccess && (_jsx(Information, { className: styles.response, type: "success", close: hideSuccess, children: messages.sendSucesss })), sendError && (_jsx(Information, { className: styles.response, type: "error", close: hideError, children: messages.sendError })), error && (_jsx(Information, { className: styles.error, type: "warning", children: messages.parametersError }))] }, formKey));
|
|
113
118
|
}
|