willba-component-library 0.0.80 → 0.0.82

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.
package/lib/index.js CHANGED
@@ -7902,18 +7902,14 @@ var css_248z$4 = ".will-guests-filter-label, .will-guests-filter-count {\n font
7902
7902
  styleInject(css_248z$4);
7903
7903
 
7904
7904
  function GuestCount(_a) {
7905
- var label = _a.label, updateGuestsCount = _a.updateGuestsCount;
7906
- useTranslation('filterBar').t;
7907
- var _b = React__default.useState(0), count = _b[0], setCount = _b[1];
7905
+ var label = _a.label, id = _a.id, updateGuestsCount = _a.updateGuestsCount, count = _a.count, minVal = _a.minVal;
7908
7906
  var handleDecrement = function () {
7909
- if (count > 0) {
7910
- setCount(count - 1);
7911
- updateGuestsCount(label, count - 1);
7907
+ if (count > minVal) {
7908
+ updateGuestsCount(id, count - 1);
7912
7909
  }
7913
7910
  };
7914
7911
  var handleIncrement = function () {
7915
- setCount(count + 1);
7916
- updateGuestsCount(label, count + 1);
7912
+ updateGuestsCount(id, count + 1);
7917
7913
  };
7918
7914
  return (React__default.createElement("div", { className: "will-guests-filter-inner" },
7919
7915
  React__default.createElement("span", { className: "will-guests-filter-label" }, label),
@@ -7930,12 +7926,13 @@ var css_248z$3 = ".will-filter-bar-guests {\n text-align: initial;\n}\n\n.will-
7930
7926
  styleInject(css_248z$3);
7931
7927
 
7932
7928
  function Guests(_a) {
7933
- var ageCategories = _a.ageCategories, updateGuestsCount = _a.updateGuestsCount;
7929
+ var ageCategories = _a.ageCategories, updateGuestsCount = _a.updateGuestsCount, ageCategoryCounts = _a.ageCategoryCounts;
7934
7930
  var t = useTranslation('filterBar').t;
7935
7931
  return (React__default.createElement("div", { className: "will-filter-bar-guests" },
7936
7932
  React__default.createElement("h3", { className: "will-guests-filter-title" }, t('guests.title')),
7937
7933
  React__default.createElement("p", { className: "will-guests-filter-subtitle" }, t('guests.subtitle')),
7938
- React__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default.createElement(GuestCount, { key: category.id, label: category.name, updateGuestsCount: updateGuestsCount })); }))));
7934
+ React__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default.createElement(GuestCount, { key: category.id, id: parseInt(category.id), label: category.name, minVal: category.minVal, updateGuestsCount: updateGuestsCount, count: ageCategoryCounts[category.id] ||
7935
+ category.minVal })); }))));
7939
7936
  }
7940
7937
 
7941
7938
  var css_248z$2 = ".will-filter-bar-categories {\n text-align: center;\n}\n\n.will-categories-filter-title {\n font-size: 16px;\n text-transform: uppercase;\n margin: 10px 0 30px 0;\n}\n\n.will-categories-filter-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 20px;\n}\n\n.will-categories-filter-inner input {\n cursor: pointer;\n margin-right: 10px;\n}\n";
@@ -8011,10 +8008,10 @@ function useFilterBar(ageCategories) {
8011
8008
  var _c = React__default.useState(0), categories = _c[0], setCategories = _c[1];
8012
8009
  //
8013
8010
  var _d = React__default.useState({}), ageCategoryCounts = _d[0], setAgeCategoryCounts = _d[1];
8014
- var updateGuestsCount = function (label, newCount) {
8011
+ var updateGuestsCount = function (id, newCount) {
8015
8012
  setAgeCategoryCounts(function (prevCounts) {
8016
8013
  var _a;
8017
- return (__assign(__assign({}, prevCounts), (_a = {}, _a[label] = newCount, _a)));
8014
+ return (__assign(__assign({}, prevCounts), (_a = {}, _a[id] = newCount, _a)));
8018
8015
  });
8019
8016
  };
8020
8017
  //
@@ -8022,8 +8019,7 @@ function useFilterBar(ageCategories) {
8022
8019
  var urlSearchParams = new URLSearchParams(window.location.search);
8023
8020
  var startDateParam = urlSearchParams.get('startDate');
8024
8021
  var endDateParam = urlSearchParams.get('endDate');
8025
- parseInt(urlSearchParams.get('guestsAdults') || '1', 10);
8026
- parseInt(urlSearchParams.get('guestsKids') || '0', 10);
8022
+ var ageCategoryCountsParam = JSON.parse(urlSearchParams.get('ageCategoryCounts') || '{}');
8027
8023
  var parsedCategories = parseInt(urlSearchParams.get('categories') || '0', 10);
8028
8024
  if (startDateParam && endDateParam) {
8029
8025
  setCalendarRange({
@@ -8031,8 +8027,7 @@ function useFilterBar(ageCategories) {
8031
8027
  to: new Date(endDateParam),
8032
8028
  });
8033
8029
  }
8034
- // setGuestsAdults(parsedGuestsAdults)
8035
- // setGuestsKids(parsedGuestsKids)
8030
+ setAgeCategoryCounts(ageCategoryCountsParam);
8036
8031
  setCategories(parsedCategories);
8037
8032
  }, []);
8038
8033
  var handleSelectedFilter = function (id) {
@@ -10424,16 +10419,16 @@ instance.use(initReactI18next).init({
10424
10419
  });
10425
10420
 
10426
10421
  function FilterBar(_a) {
10427
- var vendor = _a.vendor, language = _a.language, ageCategories = _a.ageCategories;
10422
+ var vendor = _a.vendor, language = _a.language, _b = _a.ageCategories, ageCategories = _b === void 0 ? ageCategoriesFallback : _b;
10428
10423
  var themeClass = useTheme({ vendor: vendor });
10429
- var _b = React__default.useState(0); _b[0]; var setRerenderKey = _b[1];
10424
+ var _c = React__default.useState(0); _c[0]; var setRerenderKey = _c[1];
10430
10425
  React__default.useEffect(function () {
10431
10426
  instance.changeLanguage(language);
10432
10427
  // Trigger a re-render by updating the rerenderKey
10433
10428
  setRerenderKey(function (prevKey) { return prevKey + 1; });
10434
10429
  }, [language]);
10435
10430
  var t = useTranslation('filterBar').t;
10436
- var _c = useFilterBar(), selectedFilter = _c.selectedFilter, categories = _c.categories, calendarRange = _c.calendarRange, setCalendarRange = _c.setCalendarRange, setCategories = _c.setCategories, handleSelectedFilter = _c.handleSelectedFilter, handleSubmit = _c.handleSubmit, updateGuestsCount = _c.updateGuestsCount;
10431
+ var _d = useFilterBar(), selectedFilter = _d.selectedFilter, ageCategoryCounts = _d.ageCategoryCounts, categories = _d.categories, calendarRange = _d.calendarRange, setCalendarRange = _d.setCalendarRange, setCategories = _d.setCategories, handleSelectedFilter = _d.handleSelectedFilter, handleSubmit = _d.handleSubmit, updateGuestsCount = _d.updateGuestsCount;
10437
10432
  return (React__default.createElement(React__default.Fragment, null,
10438
10433
  selectedFilter && (React__default.createElement("div", { className: "will-filter-bar will-filter-bar-underlay", onClick: function () {
10439
10434
  handleSelectedFilter(false);
@@ -10448,12 +10443,28 @@ function FilterBar(_a) {
10448
10443
  React__default.createElement(SubmitButton, { onClick: handleSubmit })),
10449
10444
  selectedFilter && (React__default.createElement("div", { className: "will-filter-bar-container" },
10450
10445
  (selectedFilter === 1 || selectedFilter === 2) && (React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange })),
10451
- selectedFilter === 3 && (React__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories })),
10446
+ selectedFilter === 3 && (React__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts })),
10452
10447
  selectedFilter === 4 && (React__default.createElement(Categories, { categories: categories, setCategories: setCategories })))))));
10453
10448
  }
10454
10449
  var fontWigthBold = function (input) {
10455
10450
  return { fontWeight: input ? 'bold' : 'initial' };
10456
10451
  };
10452
+ var ageCategoriesFallback = [
10453
+ {
10454
+ id: '1',
10455
+ name: 'Adults',
10456
+ minAge: null,
10457
+ maxAge: 6,
10458
+ minVal: 1,
10459
+ },
10460
+ {
10461
+ id: '2',
10462
+ name: 'Kids',
10463
+ minAge: 6,
10464
+ maxAge: 17,
10465
+ minVal: 0,
10466
+ },
10467
+ ];
10457
10468
 
10458
10469
  exports.Button = Button$1;
10459
10470
  exports.FilterBar = FilterBar;