willba-component-library 0.1.75 → 0.1.77
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/FilterBar.d.ts +3 -3
- package/lib/components/FilterBar/FilterBarTypes.d.ts +12 -3
- package/lib/components/FilterBar/hooks/useFilterBar.d.ts +5 -6
- package/lib/index.d.ts +13 -2
- package/lib/index.esm.js +17 -27
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +17 -27
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +17 -27
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterBar/FilterBar.stories.tsx +20 -2
- package/src/components/FilterBar/FilterBar.tsx +25 -36
- package/src/components/FilterBar/FilterBarTypes.ts +13 -4
- package/src/components/FilterBar/components/calendar/Calendar.css +0 -1
- package/src/components/FilterBar/hooks/useFilterBar.tsx +9 -8
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Palette } from '../../themes/useTheme';
|
|
3
3
|
import '../../themes/Default.css';
|
|
4
|
-
import { AgeCategoryType, CalendarOffset, Filters } from './FilterBarTypes';
|
|
4
|
+
import { AgeCategoryType, CalendarOffset, Filters, Tab } from './FilterBarTypes';
|
|
5
5
|
import './FilterBar.css';
|
|
6
6
|
export type FilterBarProps = {
|
|
7
7
|
language?: string;
|
|
8
8
|
ageCategories?: AgeCategoryType[];
|
|
9
9
|
redirectUrl?: string;
|
|
10
10
|
palette?: Palette;
|
|
11
|
-
currentViewApply?: string;
|
|
12
11
|
onSubmit?: ((val: Filters) => void) | null;
|
|
13
12
|
fullWidth?: boolean;
|
|
14
13
|
calendarOffset?: CalendarOffset;
|
|
15
14
|
mode?: string;
|
|
16
15
|
defaultTab?: string;
|
|
16
|
+
tabs?: Tab[];
|
|
17
17
|
};
|
|
18
|
-
export default function FilterBar({ language, ageCategories, redirectUrl, palette,
|
|
18
|
+
export default function FilterBar({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, calendarOffset, mode, tabs, }: FilterBarProps): React.JSX.Element | null;
|
|
@@ -23,9 +23,6 @@ export declare enum FilterSections {
|
|
|
23
23
|
export type Filters = {
|
|
24
24
|
[key: string]: string;
|
|
25
25
|
};
|
|
26
|
-
export declare enum ViewApply {
|
|
27
|
-
ROOMS = "roomFilters"
|
|
28
|
-
}
|
|
29
26
|
export declare enum Pages {
|
|
30
27
|
ROOMS = "/rooms",
|
|
31
28
|
EVENTS = "/events"
|
|
@@ -33,3 +30,15 @@ export declare enum Pages {
|
|
|
33
30
|
export type CalendarOffset = {
|
|
34
31
|
[key: string]: number;
|
|
35
32
|
};
|
|
33
|
+
type Translations = {
|
|
34
|
+
en: string;
|
|
35
|
+
fi: string;
|
|
36
|
+
[key: string]: string;
|
|
37
|
+
};
|
|
38
|
+
export type Tab = {
|
|
39
|
+
path: string;
|
|
40
|
+
default?: boolean;
|
|
41
|
+
order: number;
|
|
42
|
+
label?: Translations;
|
|
43
|
+
};
|
|
44
|
+
export {};
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { DateRange } from 'react-day-picker';
|
|
3
|
-
import { AgeCategoryCount, AgeCategoryType, Filters,
|
|
3
|
+
import { AgeCategoryCount, AgeCategoryType, Filters, Tab } from '../FilterBarTypes';
|
|
4
4
|
type Props = {
|
|
5
5
|
redirectUrl?: string;
|
|
6
|
-
currentViewApply?: string;
|
|
7
6
|
ageCategories?: AgeCategoryType[];
|
|
8
7
|
onSubmit?: ((val: Filters) => void) | null;
|
|
9
|
-
|
|
8
|
+
tabs?: Tab[];
|
|
10
9
|
};
|
|
11
|
-
export declare const useFilterBar: ({ redirectUrl,
|
|
10
|
+
export declare const useFilterBar: ({ redirectUrl, ageCategories, onSubmit, tabs, }: Props) => {
|
|
12
11
|
selectedFilter: string | boolean;
|
|
13
12
|
ageCategoryCounts: AgeCategoryCount;
|
|
14
13
|
categories: number;
|
|
15
14
|
calendarRange: DateRange | undefined;
|
|
16
|
-
selectedPath:
|
|
15
|
+
selectedPath: string;
|
|
17
16
|
setCalendarRange: import("react").Dispatch<import("react").SetStateAction<DateRange | undefined>>;
|
|
18
17
|
setSelectedFilter: import("react").Dispatch<import("react").SetStateAction<string | boolean>>;
|
|
19
18
|
setAgeCategoryCounts: import("react").Dispatch<import("react").SetStateAction<AgeCategoryCount>>;
|
|
@@ -22,6 +21,6 @@ export declare const useFilterBar: ({ redirectUrl, currentViewApply, ageCategori
|
|
|
22
21
|
handleSubmit: () => string | void;
|
|
23
22
|
updateGuestsCount: (id: string, newCount: number) => void;
|
|
24
23
|
handleResetFilters: () => void;
|
|
25
|
-
setSelectedPath: import("react").Dispatch<import("react").SetStateAction<
|
|
24
|
+
setSelectedPath: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
26
25
|
};
|
|
27
26
|
export {};
|
package/lib/index.d.ts
CHANGED
|
@@ -44,19 +44,30 @@ type Filters = {
|
|
|
44
44
|
type CalendarOffset = {
|
|
45
45
|
[key: string]: number;
|
|
46
46
|
};
|
|
47
|
+
type Translations = {
|
|
48
|
+
en: string;
|
|
49
|
+
fi: string;
|
|
50
|
+
[key: string]: string;
|
|
51
|
+
};
|
|
52
|
+
type Tab = {
|
|
53
|
+
path: string;
|
|
54
|
+
default?: boolean;
|
|
55
|
+
order: number;
|
|
56
|
+
label?: Translations;
|
|
57
|
+
};
|
|
47
58
|
|
|
48
59
|
type FilterBarProps = {
|
|
49
60
|
language?: string;
|
|
50
61
|
ageCategories?: AgeCategoryType[];
|
|
51
62
|
redirectUrl?: string;
|
|
52
63
|
palette?: Palette;
|
|
53
|
-
currentViewApply?: string;
|
|
54
64
|
onSubmit?: ((val: Filters) => void) | null;
|
|
55
65
|
fullWidth?: boolean;
|
|
56
66
|
calendarOffset?: CalendarOffset;
|
|
57
67
|
mode?: string;
|
|
58
68
|
defaultTab?: string;
|
|
69
|
+
tabs?: Tab[];
|
|
59
70
|
};
|
|
60
|
-
declare function FilterBar({ language, ageCategories, redirectUrl, palette,
|
|
71
|
+
declare function FilterBar({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, calendarOffset, mode, tabs, }: FilterBarProps): React.JSX.Element | null;
|
|
61
72
|
|
|
62
73
|
export { Button, FilterBar };
|
package/lib/index.esm.js
CHANGED
|
@@ -3927,10 +3927,6 @@ var FilterSections;
|
|
|
3927
3927
|
FilterSections["GUESTS"] = "guests";
|
|
3928
3928
|
FilterSections["CATEGORIES"] = "categories";
|
|
3929
3929
|
})(FilterSections || (FilterSections = {}));
|
|
3930
|
-
var ViewApply;
|
|
3931
|
-
(function (ViewApply) {
|
|
3932
|
-
ViewApply["ROOMS"] = "roomFilters";
|
|
3933
|
-
})(ViewApply || (ViewApply = {}));
|
|
3934
3930
|
var Pages;
|
|
3935
3931
|
(function (Pages) {
|
|
3936
3932
|
Pages["ROOMS"] = "/rooms";
|
|
@@ -3938,7 +3934,7 @@ var Pages;
|
|
|
3938
3934
|
})(Pages || (Pages = {}));
|
|
3939
3935
|
|
|
3940
3936
|
var useFilterBar = function (_a) {
|
|
3941
|
-
var redirectUrl = _a.redirectUrl,
|
|
3937
|
+
var redirectUrl = _a.redirectUrl, ageCategories = _a.ageCategories, onSubmit = _a.onSubmit, tabs = _a.tabs;
|
|
3942
3938
|
var _b = __read(useState(Pages.EVENTS), 2), selectedPath = _b[0], setSelectedPath = _b[1];
|
|
3943
3939
|
var _c = __read(useState(false), 2), selectedFilter = _c[0], setSelectedFilter = _c[1];
|
|
3944
3940
|
var _d = __read(useState(), 2), calendarRange = _d[0], setCalendarRange = _d[1];
|
|
@@ -3973,10 +3969,11 @@ var useFilterBar = function (_a) {
|
|
|
3973
3969
|
// Handle default selected tab
|
|
3974
3970
|
if (typeof window === 'undefined')
|
|
3975
3971
|
return;
|
|
3976
|
-
var
|
|
3972
|
+
var defaultTab = (tabs === null || tabs === void 0 ? void 0 : tabs.length) === 1 ? tabs[0] : tabs === null || tabs === void 0 ? void 0 : tabs.find(function (tab) { return tab.default; });
|
|
3973
|
+
var currentPath = (defaultTab === null || defaultTab === void 0 ? void 0 : defaultTab.path) === Pages.EVENTS ||
|
|
3977
3974
|
window.location.pathname.includes(Pages.EVENTS)
|
|
3978
3975
|
? Pages.EVENTS
|
|
3979
|
-
: defaultTab === Pages.ROOMS ||
|
|
3976
|
+
: (defaultTab === null || defaultTab === void 0 ? void 0 : defaultTab.path) === Pages.ROOMS ||
|
|
3980
3977
|
window.location.pathname.includes(Pages.ROOMS)
|
|
3981
3978
|
? Pages.ROOMS
|
|
3982
3979
|
: Pages.EVENTS;
|
|
@@ -4004,7 +4001,7 @@ var useFilterBar = function (_a) {
|
|
|
4004
4001
|
ageCategories: ageCategories,
|
|
4005
4002
|
}),
|
|
4006
4003
|
};
|
|
4007
|
-
if (
|
|
4004
|
+
if ((tabs === null || tabs === void 0 ? void 0 : tabs.length) === 1) {
|
|
4008
4005
|
var currentSearchParams = new URLSearchParams(window.location.search);
|
|
4009
4006
|
var updatedParams = new URLSearchParams();
|
|
4010
4007
|
try {
|
|
@@ -11043,7 +11040,7 @@ var reactResponsiveExports = reactResponsive.exports;
|
|
|
11043
11040
|
var css_248z$4 = ".rdp {\n --rdp-cell-size: 40px;\n --rdp-caption-font-size: 18px;\n --rdp-accent-color: #0000ff;\n --rdp-background-color: #e7edff;\n --rdp-accent-color-dark: #3003e1;\n --rdp-background-color-dark: #180270;\n --rdp-outline: 2px solid var(--rdp-accent-color); /* Outline border for focused elements */\n --rdp-outline-selected: 3px solid var(--rdp-accent-color); /* Outline border for focused _and_ selected elements */\n\n margin: 1em;\n}\n\n/* Hide elements for devices that are not screen readers */\n.rdp-vhidden {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n background: transparent;\n border: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n position: absolute !important;\n top: 0;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n overflow: hidden !important;\n clip: rect(1px, 1px, 1px, 1px) !important;\n border: 0 !important;\n}\n\n/* Buttons */\n.rdp-button_reset {\n appearance: none;\n position: relative;\n margin: 0;\n padding: 0;\n cursor: default;\n color: inherit;\n background: none;\n font: inherit;\n\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n.rdp-button_reset:focus-visible {\n /* Make sure to reset outline only when :focus-visible is supported */\n outline: none;\n}\n\n.rdp-button {\n border: 2px solid transparent;\n}\n\n.rdp-button[disabled]:not(.rdp-day_selected) {\n opacity: 0.25;\n}\n\n.rdp-button:not([disabled]) {\n cursor: pointer;\n}\n\n.rdp-button:focus-visible:not([disabled]) {\n color: inherit;\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n}\n\n.rdp-button:hover:not([disabled]):not(.rdp-day_selected) {\n background-color: var(--rdp-background-color);\n}\n\n.rdp-months {\n display: flex;\n}\n\n.rdp-month {\n margin: 0 1em;\n}\n\n.rdp-month:first-child {\n margin-left: 0;\n}\n\n.rdp-month:last-child {\n margin-right: 0;\n}\n\n.rdp-table {\n margin: 0;\n max-width: calc(var(--rdp-cell-size) * 7);\n border-collapse: collapse;\n}\n\n.rdp-with_weeknumber .rdp-table {\n max-width: calc(var(--rdp-cell-size) * 8);\n border-collapse: collapse;\n}\n\n.rdp-caption {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0;\n text-align: left;\n}\n\n.rdp-multiple_months .rdp-caption {\n position: relative;\n display: block;\n text-align: center;\n}\n\n.rdp-caption_dropdowns {\n position: relative;\n display: inline-flex;\n}\n\n.rdp-caption_label {\n position: relative;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: 0;\n padding: 0 0.25em;\n white-space: nowrap;\n color: currentColor;\n border: 0;\n border: 2px solid transparent;\n font-family: inherit;\n font-size: var(--rdp-caption-font-size);\n font-weight: bold;\n}\n\n.rdp-nav {\n white-space: nowrap;\n}\n\n.rdp-multiple_months .rdp-caption_start .rdp-nav {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n}\n\n.rdp-multiple_months .rdp-caption_end .rdp-nav {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n}\n\n.rdp-nav_button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n padding: 0.25em;\n border-radius: 100%;\n}\n\n/* ---------- */\n/* Dropdowns */\n/* ---------- */\n\n.rdp-dropdown_year,\n.rdp-dropdown_month {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown {\n appearance: none;\n position: absolute;\n z-index: 2;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n opacity: 0;\n border: none;\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n.rdp-dropdown[disabled] {\n opacity: unset;\n color: unset;\n}\n\n.rdp-dropdown:focus-visible:not([disabled]) + .rdp-caption_label {\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n border-radius: 6px;\n}\n\n.rdp-dropdown_icon {\n margin: 0 0 0 5px;\n}\n\n.rdp-head {\n border: 0;\n}\n\n.rdp-head_row,\n.rdp-row {\n height: 100%;\n}\n\n.rdp-head_cell {\n vertical-align: middle;\n font-size: 0.75em;\n font-weight: 700;\n text-align: center;\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-transform: uppercase;\n}\n\n.rdp-tbody {\n border: 0;\n}\n\n.rdp-tfoot {\n margin: 0.5em;\n}\n\n.rdp-cell {\n width: var(--rdp-cell-size);\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-align: center;\n}\n\n.rdp-weeknumber {\n font-size: 0.75em;\n}\n\n.rdp-weeknumber,\n.rdp-day {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--rdp-cell-size);\n max-width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n margin: 0;\n border: 2px solid transparent;\n border-radius: 100%;\n}\n\n.rdp-day_today:not(.rdp-day_outside) {\n font-weight: bold;\n}\n\n.rdp-day_selected,\n.rdp-day_selected:focus-visible,\n.rdp-day_selected:hover {\n color: white;\n opacity: 1;\n background-color: var(--rdp-accent-color);\n}\n\n.rdp-day_outside {\n opacity: 0.5;\n}\n\n.rdp-day_selected:focus-visible {\n /* Since the background is the same use again the outline */\n outline: var(--rdp-outline);\n outline-offset: 2px;\n z-index: 1;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp-day_range_end.rdp-day_range_start {\n border-radius: 100%;\n}\n\n.rdp-day_range_middle {\n border-radius: 0;\n}";
|
|
11044
11041
|
styleInject(css_248z$4);
|
|
11045
11042
|
|
|
11046
|
-
var css_248z$3 = ".will-calendar-filter-header {\n padding: 15px 0;\n border-bottom: 1px solid var(--will-grey);\n}\n\n.will-calendar-filter-title {\n font-size: 16px;\n text-transform: uppercase;\n margin: 10px 0;\n text-align: left;\n}\n\n.will-calendar-filter-container {\n display: flex;\n justify-content: center;\n}\n\n/* Calendar overrides */\n\n\n.will-calendar-filter-container .DayPicker {\n font-size: 25px; /* Adjust this value to make the DayPicker bigger */\n}\n\n.will-calendar-filter-container .rdp-month {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 70px;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 70px;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav {\n border: 1px solid var(--will-primary);\n border-radius: 50%;\n
|
|
11043
|
+
var css_248z$3 = ".will-calendar-filter-header {\n padding: 15px 0;\n border-bottom: 1px solid var(--will-grey);\n}\n\n.will-calendar-filter-title {\n font-size: 16px;\n text-transform: uppercase;\n margin: 10px 0;\n text-align: left;\n}\n\n.will-calendar-filter-container {\n display: flex;\n justify-content: center;\n}\n\n/* Calendar overrides */\n\n\n.will-calendar-filter-container .DayPicker {\n font-size: 25px; /* Adjust this value to make the DayPicker bigger */\n}\n\n.will-calendar-filter-container .rdp-month {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 70px;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 70px;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav {\n border: 1px solid var(--will-primary);\n border-radius: 50%;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav svg {\n color: var(--will-primary);\n}\n\n\n.will-calendar-filter-container .rdp-month .rdp-caption {\n position: initial;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-caption > .rdp-caption_label,\n.will-calendar-filter-container .rdp-table .rdp-head {\n opacity: .6;\n}\n\n.will-calendar-filter-container .rdp-button_reset.rdp-button.rdp-day {\n opacity: 0.7;\n}\n\n.will-calendar-filter-container .rdp-button_reset.rdp-button.rdp-day.rdp-day_selected {\n background-color: var(--will-primary);\n opacity: 1;\n}\n\n.my-today:not(.rdp-day_selected) { \n font-weight: 700;\n opacity: 1;\n color: var(--will-primary);\n}\n\n@media (max-width: 960px) {\n .will-calendar-filter-container .rdp-month .rdp-nav {\n border: none;\n border-radius: initial;\n \n }\n\n .will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 10px;\n }\n \n .will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 10px;\n }\n}\n\n\n";
|
|
11047
11044
|
styleInject(css_248z$3);
|
|
11048
11045
|
|
|
11049
11046
|
var Calendar = forwardRef(function (_a, ref) {
|
|
@@ -11109,7 +11106,7 @@ var css_248z = ".will-root {\n z-index: 999;\n width: fit-content;\n min-widt
|
|
|
11109
11106
|
styleInject(css_248z);
|
|
11110
11107
|
|
|
11111
11108
|
function FilterBar(_a) {
|
|
11112
|
-
var language = _a.language, _b = _a.ageCategories, ageCategories = _b === void 0 ? AGE_CATEGORIES_FALLBACK : _b, _c = _a.redirectUrl, redirectUrl = _c === void 0 ? REDIRECT_URL_FALLBACK : _c, palette = _a.palette,
|
|
11109
|
+
var language = _a.language, _b = _a.ageCategories, ageCategories = _b === void 0 ? AGE_CATEGORIES_FALLBACK : _b, _c = _a.redirectUrl, redirectUrl = _c === void 0 ? REDIRECT_URL_FALLBACK : _c, palette = _a.palette, onSubmit = _a.onSubmit, fullWidth = _a.fullWidth, calendarOffset = _a.calendarOffset, mode = _a.mode, tabs = _a.tabs;
|
|
11113
11110
|
var themePalette = useTheme({ palette: palette });
|
|
11114
11111
|
// Translations
|
|
11115
11112
|
useUpdateTranslations({ language: language });
|
|
@@ -11117,17 +11114,10 @@ function FilterBar(_a) {
|
|
|
11117
11114
|
// Filters
|
|
11118
11115
|
var _d = useFilterBar({
|
|
11119
11116
|
redirectUrl: redirectUrl,
|
|
11120
|
-
currentViewApply: currentViewApply,
|
|
11121
11117
|
ageCategories: ageCategories,
|
|
11122
11118
|
onSubmit: onSubmit,
|
|
11123
|
-
|
|
11119
|
+
tabs: tabs,
|
|
11124
11120
|
}), selectedFilter = _d.selectedFilter, ageCategoryCounts = _d.ageCategoryCounts, categories = _d.categories, calendarRange = _d.calendarRange, selectedPath = _d.selectedPath, setCalendarRange = _d.setCalendarRange, setCategories = _d.setCategories, handleSelectedFilter = _d.handleSelectedFilter, handleSubmit = _d.handleSubmit, updateGuestsCount = _d.updateGuestsCount, setSelectedPath = _d.setSelectedPath, handleResetFilters = _d.handleResetFilters;
|
|
11125
|
-
// Default selected tab when tabs are hidden
|
|
11126
|
-
useEffect(function () {
|
|
11127
|
-
if (currentViewApply === ViewApply.ROOMS) {
|
|
11128
|
-
setSelectedPath(Pages.ROOMS);
|
|
11129
|
-
}
|
|
11130
|
-
}, []);
|
|
11131
11121
|
// Scroll in to view
|
|
11132
11122
|
var _e = useScrollInToView({ selectedFilter: selectedFilter }), isMobile = _e.isMobile, targetFilterBarRef = _e.targetFilterBarRef;
|
|
11133
11123
|
// Handle close filter section
|
|
@@ -11150,14 +11140,14 @@ function FilterBar(_a) {
|
|
|
11150
11140
|
guestsLabel: t('guests.guestsLabel'),
|
|
11151
11141
|
});
|
|
11152
11142
|
return (React__default__default.createElement("div", { className: "will-root ".concat(fullWidth ? 'is-full-width' : ''), style: themePalette },
|
|
11153
|
-
|
|
11154
|
-
|
|
11155
|
-
|
|
11156
|
-
|
|
11157
|
-
|
|
11158
|
-
|
|
11159
|
-
|
|
11160
|
-
React__default__default.createElement("div", { className: "will-filter-bar-header ".concat(mode || 'dark'), ref:
|
|
11143
|
+
tabs && tabs.length > 1 && (React__default__default.createElement("div", { className: "will-filter-bar-tabs", ref: targetFilterBarRef }, tabs
|
|
11144
|
+
.sort(function (a, b) { return a.order - b.order; })
|
|
11145
|
+
.map(function (tab, idx) { return (React__default__default.createElement(TabButton, { key: "tab-".concat(idx), label: tab.label && language
|
|
11146
|
+
? tab.label[language]
|
|
11147
|
+
: t("tabs.".concat(tab.path.substring(1))), onClick: function () {
|
|
11148
|
+
setSelectedPath(tab.path), handleResetFilters();
|
|
11149
|
+
}, active: selectedPath === tab.path, mode: mode })); }))),
|
|
11150
|
+
React__default__default.createElement("div", { className: "will-filter-bar-header ".concat(mode || 'dark'), ref: (tabs === null || tabs === void 0 ? void 0 : tabs.length) === 1 ? targetFilterBarRef : null },
|
|
11161
11151
|
React__default__default.createElement(SelectButton, { label: t('calendar.label'), description: parsedDates
|
|
11162
11152
|
? parsedDates
|
|
11163
11153
|
: selectedPath === Pages.ROOMS
|
|
@@ -11167,7 +11157,7 @@ function FilterBar(_a) {
|
|
|
11167
11157
|
React__default__default.createElement(Divider, null),
|
|
11168
11158
|
React__default__default.createElement(SelectButton, { label: t('guests.label'), description: parsedGuests.content, onClick: function () { return handleSelectedFilter(FilterSections.GUESTS); }, active: !!parsedGuests.data.total }))),
|
|
11169
11159
|
React__default__default.createElement(SubmitButton, { onClick: handleSubmit })),
|
|
11170
|
-
selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar-container ".concat(mode || 'dark'), style:
|
|
11160
|
+
selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar-container ".concat(mode || 'dark'), style: tabs && tabs.length === 1 && !isMobile ? { top: 66 } : {} },
|
|
11171
11161
|
React__default__default.createElement(CloseButton, { handleClose: function () { return handleSelectedFilter(false); } }),
|
|
11172
11162
|
selectedFilter === FilterSections.CALENDAR && (React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, ref: filtersRef, calendarOffset: calendarOffset, selectedPath: selectedPath, locale: language })),
|
|
11173
11163
|
selectedFilter === FilterSections.GUESTS && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts, ref: filtersRef })),
|