willba-component-library 0.0.80 → 0.0.81

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,15 +1,22 @@
1
+ export interface AgeCategoryCount {
2
+ [categoryId: string]: number;
3
+ }
1
4
  export interface AgeCategoryType {
2
5
  id: string;
3
6
  name: string;
4
7
  minAge: number | null;
5
8
  maxAge: number | null;
6
- maxVal: number;
9
+ minVal: number;
7
10
  }
8
11
  export interface GuestsPropsType {
9
12
  ageCategories: AgeCategoryType[];
10
- updateGuestsCount: (arg1: string, arg2: number) => void;
13
+ updateGuestsCount: (arg1: number, arg2: number) => void;
14
+ ageCategoryCounts: AgeCategoryCount | {};
11
15
  }
12
16
  export interface GuestsCountPropsType {
13
17
  label: string;
14
- updateGuestsCount: (arg1: string, arg2: number) => void;
18
+ id: number;
19
+ updateGuestsCount: (arg1: number, arg2: number) => void;
20
+ count: number;
21
+ minVal: number;
15
22
  }
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { GuestsCountPropsType } from '../../../FilterBarTypes';
3
3
  import './GuestCount.css';
4
- export default function GuestCount({ label, updateGuestsCount, }: GuestsCountPropsType): React.JSX.Element;
4
+ export default function GuestCount({ label, id, updateGuestsCount, count, minVal, }: GuestsCountPropsType): React.JSX.Element;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { GuestsPropsType } from '../../FilterBarTypes';
3
3
  import './Guests.css';
4
- export default function Guests({ ageCategories, updateGuestsCount, }: GuestsPropsType): React.JSX.Element;
4
+ export default function Guests({ ageCategories, updateGuestsCount, ageCategoryCounts, }: GuestsPropsType): React.JSX.Element;
@@ -1,15 +1,16 @@
1
1
  /// <reference types="react" />
2
2
  import { DateRange } from 'react-day-picker';
3
+ import { AgeCategoryCount } from '../FilterBarTypes';
3
4
  export default function useFilterBar(ageCategories: any): {
4
5
  selectedFilter: number | boolean;
5
- ageCategoryCounts: {};
6
+ ageCategoryCounts: AgeCategoryCount;
6
7
  categories: number;
7
8
  calendarRange: DateRange | undefined;
8
9
  setCalendarRange: import("react").Dispatch<import("react").SetStateAction<DateRange | undefined>>;
9
10
  setSelectedFilter: import("react").Dispatch<import("react").SetStateAction<number | boolean>>;
10
- setAgeCategoryCounts: import("react").Dispatch<import("react").SetStateAction<{}>>;
11
+ setAgeCategoryCounts: import("react").Dispatch<import("react").SetStateAction<AgeCategoryCount>>;
11
12
  setCategories: import("react").Dispatch<import("react").SetStateAction<number>>;
12
13
  handleSelectedFilter: (id: number | boolean) => void;
13
14
  handleSubmit: () => void;
14
- updateGuestsCount: (label: string, newCount: number) => void;
15
+ updateGuestsCount: (id: number, newCount: number) => void;
15
16
  };
package/lib/index.d.ts CHANGED
@@ -32,7 +32,7 @@ interface AgeCategoryType {
32
32
  name: string;
33
33
  minAge: number | null;
34
34
  maxAge: number | null;
35
- maxVal: number;
35
+ minVal: number;
36
36
  }
37
37
 
38
38
  interface FilterBarProps {
package/lib/index.esm.js CHANGED
@@ -7882,18 +7882,14 @@ var css_248z$4 = ".will-guests-filter-label, .will-guests-filter-count {\n font
7882
7882
  styleInject(css_248z$4);
7883
7883
 
7884
7884
  function GuestCount(_a) {
7885
- var label = _a.label, updateGuestsCount = _a.updateGuestsCount;
7886
- useTranslation('filterBar').t;
7887
- var _b = useState(0), count = _b[0], setCount = _b[1];
7885
+ var label = _a.label, id = _a.id, updateGuestsCount = _a.updateGuestsCount, count = _a.count, minVal = _a.minVal;
7888
7886
  var handleDecrement = function () {
7889
- if (count > 0) {
7890
- setCount(count - 1);
7891
- updateGuestsCount(label, count - 1);
7887
+ if (count > minVal) {
7888
+ updateGuestsCount(id, count - 1);
7892
7889
  }
7893
7890
  };
7894
7891
  var handleIncrement = function () {
7895
- setCount(count + 1);
7896
- updateGuestsCount(label, count + 1);
7892
+ updateGuestsCount(id, count + 1);
7897
7893
  };
7898
7894
  return (React__default__default.createElement("div", { className: "will-guests-filter-inner" },
7899
7895
  React__default__default.createElement("span", { className: "will-guests-filter-label" }, label),
@@ -7910,12 +7906,13 @@ var css_248z$3 = ".will-filter-bar-guests {\n text-align: initial;\n}\n\n.will-
7910
7906
  styleInject(css_248z$3);
7911
7907
 
7912
7908
  function Guests(_a) {
7913
- var ageCategories = _a.ageCategories, updateGuestsCount = _a.updateGuestsCount;
7909
+ var ageCategories = _a.ageCategories, updateGuestsCount = _a.updateGuestsCount, ageCategoryCounts = _a.ageCategoryCounts;
7914
7910
  var t = useTranslation('filterBar').t;
7915
7911
  return (React__default__default.createElement("div", { className: "will-filter-bar-guests" },
7916
7912
  React__default__default.createElement("h3", { className: "will-guests-filter-title" }, t('guests.title')),
7917
7913
  React__default__default.createElement("p", { className: "will-guests-filter-subtitle" }, t('guests.subtitle')),
7918
- React__default__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default__default.createElement(GuestCount, { key: category.id, label: category.name, updateGuestsCount: updateGuestsCount })); }))));
7914
+ React__default__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default__default.createElement(GuestCount, { key: category.id, id: parseInt(category.id), label: category.name, minVal: category.minVal, updateGuestsCount: updateGuestsCount, count: ageCategoryCounts[category.id] ||
7915
+ category.minVal })); }))));
7919
7916
  }
7920
7917
 
7921
7918
  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";
@@ -7991,10 +7988,10 @@ function useFilterBar(ageCategories) {
7991
7988
  var _c = useState(0), categories = _c[0], setCategories = _c[1];
7992
7989
  //
7993
7990
  var _d = useState({}), ageCategoryCounts = _d[0], setAgeCategoryCounts = _d[1];
7994
- var updateGuestsCount = function (label, newCount) {
7991
+ var updateGuestsCount = function (id, newCount) {
7995
7992
  setAgeCategoryCounts(function (prevCounts) {
7996
7993
  var _a;
7997
- return (__assign(__assign({}, prevCounts), (_a = {}, _a[label] = newCount, _a)));
7994
+ return (__assign(__assign({}, prevCounts), (_a = {}, _a[id] = newCount, _a)));
7998
7995
  });
7999
7996
  };
8000
7997
  //
@@ -8002,8 +7999,7 @@ function useFilterBar(ageCategories) {
8002
7999
  var urlSearchParams = new URLSearchParams(window.location.search);
8003
8000
  var startDateParam = urlSearchParams.get('startDate');
8004
8001
  var endDateParam = urlSearchParams.get('endDate');
8005
- parseInt(urlSearchParams.get('guestsAdults') || '1', 10);
8006
- parseInt(urlSearchParams.get('guestsKids') || '0', 10);
8002
+ var ageCategoryCountsParam = JSON.parse(urlSearchParams.get('ageCategoryCounts') || '{}');
8007
8003
  var parsedCategories = parseInt(urlSearchParams.get('categories') || '0', 10);
8008
8004
  if (startDateParam && endDateParam) {
8009
8005
  setCalendarRange({
@@ -8011,8 +8007,7 @@ function useFilterBar(ageCategories) {
8011
8007
  to: new Date(endDateParam),
8012
8008
  });
8013
8009
  }
8014
- // setGuestsAdults(parsedGuestsAdults)
8015
- // setGuestsKids(parsedGuestsKids)
8010
+ setAgeCategoryCounts(ageCategoryCountsParam);
8016
8011
  setCategories(parsedCategories);
8017
8012
  }, []);
8018
8013
  var handleSelectedFilter = function (id) {
@@ -10413,7 +10408,7 @@ function FilterBar(_a) {
10413
10408
  setRerenderKey(function (prevKey) { return prevKey + 1; });
10414
10409
  }, [language]);
10415
10410
  var t = useTranslation('filterBar').t;
10416
- 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;
10411
+ var _c = useFilterBar(), selectedFilter = _c.selectedFilter, ageCategoryCounts = _c.ageCategoryCounts, categories = _c.categories, calendarRange = _c.calendarRange, setCalendarRange = _c.setCalendarRange, setCategories = _c.setCategories, handleSelectedFilter = _c.handleSelectedFilter, handleSubmit = _c.handleSubmit, updateGuestsCount = _c.updateGuestsCount;
10417
10412
  return (React__default__default.createElement(React__default__default.Fragment, null,
10418
10413
  selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar will-filter-bar-underlay", onClick: function () {
10419
10414
  handleSelectedFilter(false);
@@ -10428,7 +10423,7 @@ function FilterBar(_a) {
10428
10423
  React__default__default.createElement(SubmitButton, { onClick: handleSubmit })),
10429
10424
  selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar-container" },
10430
10425
  (selectedFilter === 1 || selectedFilter === 2) && (React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange })),
10431
- selectedFilter === 3 && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories })),
10426
+ selectedFilter === 3 && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts })),
10432
10427
  selectedFilter === 4 && (React__default__default.createElement(Categories, { categories: categories, setCategories: setCategories })))))));
10433
10428
  }
10434
10429
  var fontWigthBold = function (input) {