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
|
-
|
|
140
|
-
|
|
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
|
-
|
|
143
|
-
|
|
144
|
-
|
|
149
|
+
const updateStayFrom = value => {
|
|
150
|
+
const from = new Date(value);
|
|
151
|
+
const to = new Date(data.stayTo);
|
|
145
152
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
stayTo: value
|
|
150
|
-
});
|
|
151
|
-
}
|
|
153
|
+
if (from > to || !data.stayTo) {
|
|
154
|
+
updateField("stayTo")(value);
|
|
155
|
+
}
|
|
152
156
|
|
|
153
|
-
|
|
154
|
-
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
const to = new Date(value);
|
|
168
|
+
updateField("stayTo")(value);
|
|
169
|
+
};
|
|
161
170
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
});
|
|
167
|
-
}
|
|
171
|
+
const updateFirstSkiDate = value => {
|
|
172
|
+
if (!data.stayFrom) {
|
|
173
|
+
updateField("stayFrom")(value);
|
|
174
|
+
}
|
|
168
175
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
});
|
|
176
|
+
if (!data.stayTo) {
|
|
177
|
+
updateField("stayTo")(value);
|
|
172
178
|
}
|
|
173
179
|
|
|
174
|
-
|
|
175
|
-
|
|
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:
|
|
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:
|
|
320
|
+
onValueChange: updateStayFrom
|
|
331
321
|
}), _jsx(Input, {
|
|
332
322
|
type: "date",
|
|
333
323
|
label: messages.to,
|
|
334
324
|
value: data.stayTo,
|
|
335
|
-
onValueChange:
|
|
325
|
+
onValueChange: updateStayTo
|
|
336
326
|
}), _jsx(Input, {
|
|
337
327
|
type: "date",
|
|
338
328
|
label: messages.firstSkiDate,
|
|
339
329
|
value: data.firstSkiDate,
|
|
340
|
-
onValueChange:
|
|
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:
|
|
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:
|
|
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:
|
|
379
|
+
onChange: updateField("durations", true),
|
|
390
380
|
disabled: data.domains?.length === 0
|
|
391
381
|
})]
|
|
392
382
|
}), widgetUrl && _jsxs(_Fragment, {
|