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/components/FilterBar/FilterBarTypes.d.ts +10 -3
- package/lib/components/FilterBar/components/guests/GuestCount/GuestCount.d.ts +1 -1
- package/lib/components/FilterBar/components/guests/Guests.d.ts +1 -1
- package/lib/components/FilterBar/hooks/useFilterBar.d.ts +4 -3
- package/lib/index.d.ts +1 -1
- package/lib/index.esm.js +31 -20
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +31 -20
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +31 -20
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterBar/FilterBar.tsx +19 -3
- package/src/components/FilterBar/FilterBarTypes.ts +11 -3
- package/src/components/FilterBar/components/guests/GuestCount/GuestCount.tsx +8 -11
- package/src/components/FilterBar/components/guests/Guests.tsx +9 -2
- package/src/components/FilterBar/hooks/useFilterBar.tsx +10 -13
|
@@ -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
|
-
|
|
9
|
+
minVal: number;
|
|
7
10
|
}
|
|
8
11
|
export interface GuestsPropsType {
|
|
9
12
|
ageCategories: AgeCategoryType[];
|
|
10
|
-
updateGuestsCount: (arg1:
|
|
13
|
+
updateGuestsCount: (arg1: number, arg2: number) => void;
|
|
14
|
+
ageCategoryCounts: AgeCategoryCount | {};
|
|
11
15
|
}
|
|
12
16
|
export interface GuestsCountPropsType {
|
|
13
17
|
label: string;
|
|
14
|
-
|
|
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: (
|
|
15
|
+
updateGuestsCount: (id: number, newCount: number) => void;
|
|
15
16
|
};
|
package/lib/index.d.ts
CHANGED
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 >
|
|
7890
|
-
|
|
7891
|
-
updateGuestsCount(label, count - 1);
|
|
7887
|
+
if (count > minVal) {
|
|
7888
|
+
updateGuestsCount(id, count - 1);
|
|
7892
7889
|
}
|
|
7893
7890
|
};
|
|
7894
7891
|
var handleIncrement = function () {
|
|
7895
|
-
|
|
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 (
|
|
7991
|
+
var updateGuestsCount = function (id, newCount) {
|
|
7995
7992
|
setAgeCategoryCounts(function (prevCounts) {
|
|
7996
7993
|
var _a;
|
|
7997
|
-
return (__assign(__assign({}, prevCounts), (_a = {}, _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
|
-
|
|
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
|
-
|
|
8015
|
-
// setGuestsKids(parsedGuestsKids)
|
|
8010
|
+
setAgeCategoryCounts(ageCategoryCountsParam);
|
|
8016
8011
|
setCategories(parsedCategories);
|
|
8017
8012
|
}, []);
|
|
8018
8013
|
var handleSelectedFilter = function (id) {
|
|
@@ -10404,16 +10399,16 @@ instance.use(initReactI18next).init({
|
|
|
10404
10399
|
});
|
|
10405
10400
|
|
|
10406
10401
|
function FilterBar(_a) {
|
|
10407
|
-
var vendor = _a.vendor, language = _a.language,
|
|
10402
|
+
var vendor = _a.vendor, language = _a.language, _b = _a.ageCategories, ageCategories = _b === void 0 ? ageCategoriesFallback : _b;
|
|
10408
10403
|
var themeClass = useTheme({ vendor: vendor });
|
|
10409
|
-
var
|
|
10404
|
+
var _c = useState(0); _c[0]; var setRerenderKey = _c[1];
|
|
10410
10405
|
useEffect(function () {
|
|
10411
10406
|
instance.changeLanguage(language);
|
|
10412
10407
|
// Trigger a re-render by updating the rerenderKey
|
|
10413
10408
|
setRerenderKey(function (prevKey) { return prevKey + 1; });
|
|
10414
10409
|
}, [language]);
|
|
10415
10410
|
var t = useTranslation('filterBar').t;
|
|
10416
|
-
var
|
|
10411
|
+
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;
|
|
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,12 +10423,28 @@ 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) {
|
|
10435
10430
|
return { fontWeight: input ? 'bold' : 'initial' };
|
|
10436
10431
|
};
|
|
10432
|
+
var ageCategoriesFallback = [
|
|
10433
|
+
{
|
|
10434
|
+
id: '1',
|
|
10435
|
+
name: 'Adults',
|
|
10436
|
+
minAge: null,
|
|
10437
|
+
maxAge: 6,
|
|
10438
|
+
minVal: 1,
|
|
10439
|
+
},
|
|
10440
|
+
{
|
|
10441
|
+
id: '2',
|
|
10442
|
+
name: 'Kids',
|
|
10443
|
+
minAge: 6,
|
|
10444
|
+
maxAge: 17,
|
|
10445
|
+
minVal: 0,
|
|
10446
|
+
},
|
|
10447
|
+
];
|
|
10437
10448
|
|
|
10438
10449
|
export { Button$1 as Button, FilterBar };
|
|
10439
10450
|
//# sourceMappingURL=index.esm.js.map
|