ublo-lib 1.1.14 → 1.1.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.
@@ -78,7 +78,6 @@ const SkiPass = ({
78
78
  const [filters, setFilters] = React.useState();
79
79
  const [data, setData] = React.useState(getDefaultData(config));
80
80
  const [presetUrl, setPresetUrl] = React.useState("");
81
- const firstRender = React.useRef(true);
82
81
  const resortData = resorts?.find(r => {
83
82
  return r.resort === parseInt(selectedResort);
84
83
  });
@@ -135,45 +134,58 @@ const SkiPass = ({
135
134
  const selectedDomains = data.domains.map(domain => filters?.domains?.find(d => d.value === domain));
136
135
  const selectedDurations = data.durations.map(domain => filters?.durations?.find(d => d.value === domain));
137
136
 
138
- const updateField = field => value => {
139
- const isFrom = field === "stayFrom";
140
- const isTo = field === "stayTo";
137
+ const updateField = (field, isArray) => value => {
138
+ if (isArray) {
139
+ setData(data => ({ ...data,
140
+ [field]: value.map(v => v.value)
141
+ }));
142
+ } else {
143
+ setData(data => ({ ...data,
144
+ [field]: value
145
+ }));
146
+ }
147
+ };
141
148
 
142
- if (isFrom) {
143
- const from = new Date(value);
144
- const to = new Date(data.stayTo);
149
+ const updateStayFrom = value => {
150
+ const from = new Date(value);
151
+ const to = new Date(data.stayTo);
145
152
 
146
- if (from > to || !data.stayTo) {
147
- return setData({ ...data,
148
- [field]: value,
149
- stayTo: value
150
- });
151
- }
153
+ if (from > to || !data.stayTo) {
154
+ updateField("stayTo")(value);
155
+ }
152
156
 
153
- return setData({ ...data,
154
- [field]: value
155
- });
157
+ updateField("stayFrom")(value);
158
+ };
159
+
160
+ const updateStayTo = value => {
161
+ const from = new Date(data.stayFrom);
162
+ const to = new Date(value);
163
+
164
+ if (from > to || !data.stayFrom) {
165
+ updateField("stayFrom")(value);
156
166
  }
157
167
 
158
- if (isTo) {
159
- const from = new Date(data.stayFrom);
160
- const to = new Date(value);
168
+ updateField("stayTo")(value);
169
+ };
161
170
 
162
- if (from > to || !data.stayFrom) {
163
- return setData({ ...data,
164
- [field]: value,
165
- stayFrom: value
166
- });
167
- }
171
+ const updateFirstSkiDate = value => {
172
+ if (!data.stayFrom) {
173
+ updateField("stayFrom")(value);
174
+ }
168
175
 
169
- return setData({ ...data,
170
- [field]: value
171
- });
176
+ if (!data.stayTo) {
177
+ updateField("stayTo")(value);
172
178
  }
173
179
 
174
- setData({ ...data,
175
- [field]: value
176
- });
180
+ updateField("firstSkiDate")(value);
181
+ };
182
+
183
+ const updateDomains = value => {
184
+ if (value.length > 0) {
185
+ updateField("durations", true)([]);
186
+ }
187
+
188
+ updateField("domains", true)(value);
177
189
  };
178
190
 
179
191
  const updateSkiers = code => value => {
@@ -184,10 +196,6 @@ const SkiPass = ({
184
196
  });
185
197
  };
186
198
 
187
- const updateCatalog = value => {
188
- setCatalog(value);
189
- };
190
-
191
199
  const copyPresetsUrl = async () => {
192
200
  try {
193
201
  await navigator.clipboard.writeText(presetUrl);
@@ -279,18 +287,6 @@ const SkiPass = ({
279
287
  }
280
288
  }
281
289
  }, [catalog, data, kind, lang, selectedResort, setConfig, widgetUrl]);
282
- React.useEffect(() => {
283
- if (firstRender.current) {
284
- firstRender.current = false;
285
- return;
286
- }
287
-
288
- if (data.domains.length > 0) {
289
- setData(data => ({ ...data,
290
- durations: []
291
- }));
292
- }
293
- }, [data.domains]);
294
290
 
295
291
  if (!ready) {
296
292
  return _jsx("div", {
@@ -299,12 +295,6 @@ const SkiPass = ({
299
295
  });
300
296
  }
301
297
 
302
- const updateFilter = kind => newValues => {
303
- setData(data => ({ ...data,
304
- [kind]: newValues.map(v => v.value)
305
- }));
306
- };
307
-
308
298
  return _jsxs("div", {
309
299
  className: styles.skiPass,
310
300
  children: [_jsx("div", {
@@ -313,7 +303,7 @@ const SkiPass = ({
313
303
  }), _jsx(Select, {
314
304
  options: formatedCatalogs,
315
305
  value: catalog,
316
- onValueChange: updateCatalog
306
+ onValueChange: setCatalog
317
307
  }), !catalog || !data ? _jsx("div", {
318
308
  className: styles.tip,
319
309
  children: "Vous devez selectionner un catalogue avant de pouvoir ajouter des presets"
@@ -327,17 +317,17 @@ const SkiPass = ({
327
317
  type: "date",
328
318
  label: messages.from,
329
319
  value: data.stayFrom,
330
- onValueChange: updateField("stayFrom")
320
+ onValueChange: updateStayFrom
331
321
  }), _jsx(Input, {
332
322
  type: "date",
333
323
  label: messages.to,
334
324
  value: data.stayTo,
335
- onValueChange: updateField("stayTo")
325
+ onValueChange: updateStayTo
336
326
  }), _jsx(Input, {
337
327
  type: "date",
338
328
  label: messages.firstSkiDate,
339
329
  value: data.firstSkiDate,
340
- onValueChange: updateField("firstSkiDate"),
330
+ onValueChange: updateFirstSkiDate,
341
331
  min: data?.stayFrom || undefined,
342
332
  max: data?.stayTo || undefined
343
333
  })]
@@ -372,7 +362,7 @@ const SkiPass = ({
372
362
  label: messages.activities,
373
363
  options: activities,
374
364
  values: selectedActivities,
375
- onChange: updateFilter("activities")
365
+ onChange: updateField("activities", true)
376
366
  }), _jsxs("div", {
377
367
  className: styles.row,
378
368
  children: [filteredDomains?.length > 0 && _jsx(MutlipleSelect, {
@@ -380,13 +370,13 @@ const SkiPass = ({
380
370
  label: messages.domains,
381
371
  options: filteredDomains,
382
372
  values: selectedDomains,
383
- onChange: updateFilter("domains")
373
+ onChange: updateDomains
384
374
  }), filteredDurations?.length > 0 && _jsx(MutlipleSelect, {
385
375
  placeholder: "Selectionnez une ou plusieurs options",
386
376
  label: messages.durations,
387
377
  options: filteredDurations,
388
378
  values: selectedDurations,
389
- onChange: updateFilter("durations"),
379
+ onChange: updateField("durations", true),
390
380
  disabled: data.domains?.length === 0
391
381
  })]
392
382
  }), widgetUrl && _jsxs(_Fragment, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ublo-lib",
3
- "version": "1.1.14",
3
+ "version": "1.1.16",
4
4
  "peerDependencies": {
5
5
  "dt-design-system": "^2.1.0",
6
6
  "next": "^12.0.0",