ublo-lib 1.17.1 → 1.17.3

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,12 +1,13 @@
1
1
  import * as React from "react";
2
2
  import type { Offer } from "../services/offers";
3
3
  type Props = {
4
+ resort: number;
4
5
  item: Offer;
5
6
  preset: Record<string, any> | null;
6
7
  updatePreset: (item: Offer, subPreset?: Offer) => void;
7
8
  removePreset: () => void;
8
9
  setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
9
10
  };
10
- export default function WidgetListItem({ item, preset, updatePreset, removePreset, setShowPresetDialog, }: Props): import("react/jsx-runtime").JSX.Element;
11
+ export default function WidgetListItem({ resort, item, preset, updatePreset, removePreset, setShowPresetDialog, }: Props): import("react/jsx-runtime").JSX.Element;
11
12
  export {};
12
13
  //# sourceMappingURL=widget-list-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"widget-list-item.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/components/widget-list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,EAAE,KAAK,2CA6IP"}
1
+ {"version":3,"file":"widget-list-item.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/components/widget-list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EACN,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,EAAE,KAAK,2CAiJP"}
@@ -5,14 +5,16 @@ import Button from "dt-design-system/es/button";
5
5
  import * as Icons from "dt-design-system/es/icons";
6
6
  import css from "./widget-list-item.module.css";
7
7
  const ALLOW_PRESETS_ON_WIDGETS = ["lodging", "skiPass", "elloha", "vakario"];
8
- export default function WidgetListItem({ item, preset, updatePreset, removePreset, setShowPresetDialog, }) {
8
+ export default function WidgetListItem({ resort, item, preset, updatePreset, removePreset, setShowPresetDialog, }) {
9
9
  const [opened, setOpened] = React.useState(false);
10
10
  const { widget, logo, name, items: subs } = item;
11
11
  const toggleItem = () => {
12
12
  setOpened(!opened);
13
13
  };
14
14
  const ToggleIcon = opened ? Icons.ChevronUp : Icons.ChevronDown;
15
- const isSelected = preset?.name === name && preset?.widget === widget;
15
+ const isSelected = preset?.name === name &&
16
+ preset?.widget === widget &&
17
+ preset?.options?.resort === resort;
16
18
  const hasSubs = subs && subs.length > 0;
17
19
  const allowAdvancedPresets = ALLOW_PRESETS_ON_WIDGETS.includes(widget);
18
20
  const showEditButton = isSelected && allowAdvancedPresets;
@@ -27,7 +29,7 @@ export default function WidgetListItem({ item, preset, updatePreset, removePrese
27
29
  }
28
30
  };
29
31
  return (_jsxs("div", { className: classes, children: [_jsxs(Button, { variant: "transparent", className: css.button, onClick: handleItemClick, children: [_jsx("div", { className: css.logo, children: _jsx("img", { src: logo, alt: name }) }), _jsx("div", { className: css.name, children: name })] }), (hasSubs || showEditButton || showRemoveButton) && (_jsxs("div", { className: css.actions, children: [showEditButton && (_jsx(Button, { variant: "primary", className: css.action, onClick: () => setShowPresetDialog(true), "data-tooltip": "Modifier", compact: true, children: _jsx(Icons.Edit, {}) })), showRemoveButton && (_jsx(Button, { variant: "danger", className: css.action, onClick: removePreset, "data-tooltip": "Supprimer", compact: true, children: _jsx(Icons.Trash, {}) })), hasSubs && (_jsx(Button, { variant: "secondary", className: css.action, onClick: toggleItem, "data-tooltip": "Afficher les sous-marchands", compact: true, children: _jsx(ToggleIcon, {}) }))] })), opened && subs && (_jsx("div", { className: css.list, children: subs.map((sub) => {
30
- const isSelected = preset?.name === sub.name;
32
+ const isSelected = preset?.name === sub.name && preset?.options?.resort === resort;
31
33
  const allowedWidgets = [
32
34
  "otherProducts",
33
35
  ...ALLOW_PRESETS_ON_WIDGETS,
@@ -3,7 +3,7 @@ import type { Offer } from "../services/offers";
3
3
  type Props = {
4
4
  lang: "fr" | "en";
5
5
  channel: string;
6
- resort: number | string;
6
+ resort: number;
7
7
  facet: string;
8
8
  preset: Record<string, any> | null;
9
9
  updatePreset: (item: Offer, subPreset?: Offer) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"widget-list.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/components/widget-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9D,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,mBAAmB,GACpB,EAAE,KAAK,2CA8CP"}
1
+ {"version":3,"file":"widget-list.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/components/widget-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9D,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,mBAAmB,GACpB,EAAE,KAAK,2CAkDP"}
@@ -28,7 +28,7 @@ export default function WidgetList({ lang, channel, resort, facet, preset, updat
28
28
  };
29
29
  runEffect();
30
30
  }, [channel, facet, lang, resort, setError]);
31
- return (_jsxs("div", { className: css.list, children: [loading && _jsx(Loader, { className: css.loader }), offers?.map((offer, i) => {
32
- return (_jsx(WidgetListItem, { item: offer, preset: preset, updatePreset: updatePreset, removePreset: removePreset, setShowPresetDialog: setShowPresetDialog }, i));
31
+ return (_jsxs("div", { className: css.list, children: [loading && _jsx(Loader, { className: css.loader }), offers?.length === 0 && !loading && (_jsx("div", { className: css.empty, children: "Aucun widget disponible" })), offers?.map((offer, i) => {
32
+ return (_jsx(WidgetListItem, { resort: resort, item: offer, preset: preset, updatePreset: updatePreset, removePreset: removePreset, setShowPresetDialog: setShowPresetDialog }, i));
33
33
  })] }));
34
34
  }
@@ -10,3 +10,12 @@
10
10
 
11
11
  margin-top: 10px;
12
12
  }
13
+
14
+ .empty {
15
+ padding: 8px;
16
+ font-size: 14px;
17
+ text-align: center;
18
+ background: var(--ds-grey-100, #f5f5f5);
19
+ font-style: italic;
20
+ border-radius: var(--ds-radius-200, 10px);
21
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"msem-preset-editor.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-editor/msem-preset-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,EAAE,KAAK,kDA6KP"}
1
+ {"version":3,"file":"msem-preset-editor.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-editor/msem-preset-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,EAAE,KAAK,kDAqLP"}
@@ -34,7 +34,7 @@ export default function MseMPresetEditor({ lang, options, urls, selectedPreset,
34
34
  resort,
35
35
  slug: preset?.openPage ? preset?.presets?.accomodation : undefined,
36
36
  });
37
- const updatePreset = (item, subPreset) => {
37
+ const updatePreset = React.useCallback((item, subPreset) => {
38
38
  let { name, options: itemOptions, presets: itemPresets } = item;
39
39
  const widget = subPreset?.widget || item.widget;
40
40
  if (!widget) {
@@ -49,7 +49,12 @@ export default function MseMPresetEditor({ lang, options, urls, selectedPreset,
49
49
  if (stay?.from && stay?.to) {
50
50
  itemPresets = { ...itemPresets, stay };
51
51
  }
52
- const allOptions = { facet: Number(facet), ...itemOptions, ...options };
52
+ const allOptions = {
53
+ facet: Number(facet),
54
+ ...itemOptions,
55
+ ...options,
56
+ resort,
57
+ };
53
58
  const newPreset = {
54
59
  name,
55
60
  widget,
@@ -59,7 +64,7 @@ export default function MseMPresetEditor({ lang, options, urls, selectedPreset,
59
64
  };
60
65
  onChange?.(newPreset);
61
66
  setPreset(newPreset);
62
- };
67
+ }, [baseUrl, facet, onChange, options, stay, resort]);
63
68
  const removePreset = () => {
64
69
  onChange?.(null);
65
70
  setPreset(null);
@@ -103,7 +108,7 @@ export default function MseMPresetEditor({ lang, options, urls, selectedPreset,
103
108
  React.cloneElement(children, {
104
109
  resort,
105
110
  setResort,
106
- }), _jsx(FacetSelector, { facet: facet, setFacet: setFacet, setPreset: setPreset }), _jsx(StayPicker, { stay: stay, setStay: setStay, setPreset: setPreset }), showWidgetList && (_jsx(WidgetList, { lang: lang, resort: resort, channel: options.channel, facet: facet, preset: preset, updatePreset: updatePreset, removePreset: removePreset, error: error, setError: setError, setShowPresetDialog: setShowPresetDialog })), _jsx(Dialog, { isOpened: showPresetDialog, close: () => setShowPresetDialog(false), container: null, showAsModal: false, showCloseButton: false, children: showPresetDialog && (_jsx(CurrentEditor, { stay: stay, facet: facet, preset: preset, setPreset: setPreset, setShowPresetDialog: setShowPresetDialog, testPreset: testPreset, onChange: onChange, baseUrl: baseUrl })) }), error && _jsx("div", { className: css.error, children: error }), _jsxs("div", { className: css.footer, children: [_jsx(Button, { variant: "secondary", disabled: !preset?.widget, className: css.testButton, onClick: testPreset, "data-tooltip": "Tester dans le widget MseM", children: _jsx(Icons.MdOpenInBrowser, {}) }), _jsx(Input, { type: "text", className: css.url, value: presetUrl, onClick: copyUrl, disabled: !preset?.widget || presetUrl === "", placeholder: !preset
111
+ }), _jsx(FacetSelector, { facet: facet, setFacet: setFacet, setPreset: setPreset }), _jsx(StayPicker, { stay: stay, setStay: setStay, setPreset: setPreset }), showWidgetList && (_jsx(WidgetList, { lang: lang, resort: resort, channel: options.channel, facet: facet, preset: preset, updatePreset: updatePreset, removePreset: removePreset, error: error, setError: setError, setShowPresetDialog: setShowPresetDialog })), _jsx(Dialog, { isOpened: showPresetDialog, close: () => setShowPresetDialog(false), container: null, showAsModal: false, showCloseButton: false, children: showPresetDialog && (_jsx(CurrentEditor, { stay: stay, facet: facet, preset: preset, setPreset: setPreset, setShowPresetDialog: setShowPresetDialog, testPreset: testPreset, onChange: onChange, baseUrl: baseUrl })) }), error && _jsx("div", { className: css.error, children: error }), _jsxs("div", { className: css.footer, children: [_jsx(Button, { variant: "secondary", disabled: !preset?.widget || preset?.options?.resort !== resort, className: css.testButton, onClick: testPreset, "data-tooltip": "Tester dans le widget MseM", children: _jsx(Icons.MdOpenInBrowser, {}) }), _jsx(Input, { type: "text", className: css.url, value: presetUrl, onClick: copyUrl, disabled: !preset?.widget || presetUrl === "", placeholder: !preset
107
112
  ? "Aucun preset sélectionné"
108
113
  : "Preset incompatible au format URL", readOnly: true })] })] }));
109
114
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ublo-lib",
3
- "version": "1.17.1",
3
+ "version": "1.17.3",
4
4
  "peerDependencies": {
5
5
  "dt-design-system": "^2.9.0",
6
6
  "leaflet": "^1.9.1",