willba-component-library 0.0.90 → 0.1.0
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/README.md +54 -0
- package/lib/components/FilterBar/FilterBar.d.ts +2 -1
- package/lib/components/FilterBar/hooks/useFilterBar.d.ts +5 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.esm.js +13 -11
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +13 -11
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +13 -11
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterBar/FilterBar.stories.tsx +1 -0
- package/src/components/FilterBar/FilterBar.tsx +9 -3
- package/src/components/FilterBar/hooks/useFilterBar.tsx +9 -4
package/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
## Installation
|
|
2
|
+
|
|
3
|
+
Willba-component-library is available as an [npm package](https://www.npmjs.com/package/willba-component-library).
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
// with npm
|
|
7
|
+
npm install willba-component-library
|
|
8
|
+
|
|
9
|
+
// with yarn
|
|
10
|
+
yarn add willba-component-library
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```jsx
|
|
16
|
+
import React from 'react'
|
|
17
|
+
import ReactDOM from 'react-dom'
|
|
18
|
+
import { FilterBar } from 'willba-component-library'
|
|
19
|
+
|
|
20
|
+
function App() {
|
|
21
|
+
return <FilterBar redirectUrl={'http://localhost:3000/'} />
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
ReactDOM.render(<App />, document.querySelector('#app'))
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
or you can add the willba-component-library using scripts:
|
|
28
|
+
|
|
29
|
+
<div id='will-filter-bar' style="max-width: 1200px"></div>
|
|
30
|
+
|
|
31
|
+
<script src="https://unpkg.com/react@17/umd/react.development.js"></script>
|
|
32
|
+
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
|
|
33
|
+
<script src="https://cdn.jsdelivr.net/npm/willba-component-library@0.0.90/lib/index.umd.js"></script>
|
|
34
|
+
|
|
35
|
+
<script>
|
|
36
|
+
const filterBarElement = React.createElement;
|
|
37
|
+
const filterBarContainer = document.getElementById('will-filter-bar');
|
|
38
|
+
const WillFilterBar = WillbaComponentLibrary.FilterBar ;
|
|
39
|
+
|
|
40
|
+
ReactDOM.render(filterBarElement(
|
|
41
|
+
WillFilterBar,
|
|
42
|
+
{
|
|
43
|
+
redirectUrl='http://localhost:3000/'
|
|
44
|
+
},
|
|
45
|
+
), filterBarContainer )
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
### Props Of Filter Bar
|
|
49
|
+
|
|
50
|
+
| Name | Value | Description |
|
|
51
|
+
| ------------- | ------------- | ------------------------------------------------------------------------------------ | -------------------- | ---------------------- |
|
|
52
|
+
| redirectUrl | `"string"` | Define the URL where the component showld redirect on filtering. |
|
|
53
|
+
| language | `"fi" , "en"` | Specify the language, available languages Finnish and English |
|
|
54
|
+
| ageCategories | `[{}]` | Specify age categories for guests filter: [{id: string, name: string, minAge: number | null, maxAge: number | null, minVal: number}] |
|
|
@@ -6,6 +6,7 @@ interface FilterBarProps {
|
|
|
6
6
|
vendor?: string;
|
|
7
7
|
language?: string;
|
|
8
8
|
ageCategories?: AgeCategoryType[];
|
|
9
|
+
redirectUrl: string;
|
|
9
10
|
}
|
|
10
|
-
export default function FilterBar({ vendor, language, ageCategories, }: FilterBarProps): React.JSX.Element;
|
|
11
|
+
export default function FilterBar({ vendor, language, ageCategories, redirectUrl, }: FilterBarProps): React.JSX.Element;
|
|
11
12
|
export {};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { DateRange } from 'react-day-picker';
|
|
3
3
|
import { AgeCategoryCount } from '../FilterBarTypes';
|
|
4
|
-
|
|
4
|
+
interface UseFilterBarPropsType {
|
|
5
|
+
redirectUrl: string;
|
|
6
|
+
}
|
|
7
|
+
export default function useFilterBar({ redirectUrl }: UseFilterBarPropsType): {
|
|
5
8
|
selectedFilter: number | boolean;
|
|
6
9
|
ageCategoryCounts: AgeCategoryCount;
|
|
7
10
|
categories: number;
|
|
@@ -15,3 +18,4 @@ export default function useFilterBar(ageCategories: any): {
|
|
|
15
18
|
updateGuestsCount: (id: number, newCount: number) => void;
|
|
16
19
|
handleResetFilters: () => void;
|
|
17
20
|
};
|
|
21
|
+
export {};
|
package/lib/index.d.ts
CHANGED
|
@@ -39,7 +39,8 @@ interface FilterBarProps {
|
|
|
39
39
|
vendor?: string;
|
|
40
40
|
language?: string;
|
|
41
41
|
ageCategories?: AgeCategoryType[];
|
|
42
|
+
redirectUrl: string;
|
|
42
43
|
}
|
|
43
|
-
declare function FilterBar({ vendor, language, ageCategories, }: FilterBarProps): React.JSX.Element;
|
|
44
|
+
declare function FilterBar({ vendor, language, ageCategories, redirectUrl, }: FilterBarProps): React.JSX.Element;
|
|
44
45
|
|
|
45
46
|
export { Button, FilterBar };
|
package/lib/index.esm.js
CHANGED
|
@@ -7986,11 +7986,12 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
7986
7986
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
7987
7987
|
};
|
|
7988
7988
|
|
|
7989
|
-
function useFilterBar(
|
|
7990
|
-
var
|
|
7991
|
-
var _b = useState(),
|
|
7992
|
-
var _c = useState(
|
|
7993
|
-
var _d = useState(
|
|
7989
|
+
function useFilterBar(_a) {
|
|
7990
|
+
var redirectUrl = _a.redirectUrl;
|
|
7991
|
+
var _b = useState(false), selectedFilter = _b[0], setSelectedFilter = _b[1];
|
|
7992
|
+
var _c = useState(), calendarRange = _c[0], setCalendarRange = _c[1];
|
|
7993
|
+
var _d = useState(0), categories = _d[0], setCategories = _d[1];
|
|
7994
|
+
var _e = useState({}), ageCategoryCounts = _e[0], setAgeCategoryCounts = _e[1];
|
|
7994
7995
|
var updateGuestsCount = function (id, newCount) {
|
|
7995
7996
|
setAgeCategoryCounts(function (prevCounts) {
|
|
7996
7997
|
var _a;
|
|
@@ -8031,8 +8032,7 @@ function useFilterBar(ageCategories) {
|
|
|
8031
8032
|
queryParams.append(key, value.toString());
|
|
8032
8033
|
}
|
|
8033
8034
|
}
|
|
8034
|
-
|
|
8035
|
-
window.location.href = url;
|
|
8035
|
+
window.location.href = "".concat(redirectUrl).concat(queryParams ? "?".concat(queryParams.toString()) : '');
|
|
8036
8036
|
handleSelectedFilter(false);
|
|
8037
8037
|
};
|
|
8038
8038
|
useEffect(function () {
|
|
@@ -10421,15 +10421,15 @@ function CloseButton(_a) {
|
|
|
10421
10421
|
}
|
|
10422
10422
|
|
|
10423
10423
|
function FilterBar(_a) {
|
|
10424
|
-
var vendor = _a.vendor, language = _a.language, _b = _a.ageCategories, ageCategories = _b === void 0 ?
|
|
10424
|
+
var vendor = _a.vendor, 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;
|
|
10425
10425
|
var themeClass = useTheme({ vendor: vendor });
|
|
10426
|
-
var
|
|
10426
|
+
var _d = useState(0); _d[0]; var setRerenderKey = _d[1];
|
|
10427
10427
|
useEffect(function () {
|
|
10428
10428
|
instance.changeLanguage(language);
|
|
10429
10429
|
setRerenderKey(function (prevKey) { return prevKey + 1; });
|
|
10430
10430
|
}, [language]);
|
|
10431
10431
|
var t = useTranslation('filterBar').t;
|
|
10432
|
-
var
|
|
10432
|
+
var _e = useFilterBar({ redirectUrl: redirectUrl }), selectedFilter = _e.selectedFilter, ageCategoryCounts = _e.ageCategoryCounts, categories = _e.categories, calendarRange = _e.calendarRange, setCalendarRange = _e.setCalendarRange, setCategories = _e.setCategories, handleSelectedFilter = _e.handleSelectedFilter, handleSubmit = _e.handleSubmit, updateGuestsCount = _e.updateGuestsCount, handleResetFilters = _e.handleResetFilters;
|
|
10433
10433
|
return (React__default__default.createElement(React__default__default.Fragment, null,
|
|
10434
10434
|
selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar will-filter-bar-underlay", onClick: function () {
|
|
10435
10435
|
handleSelectedFilter(false);
|
|
@@ -10448,10 +10448,11 @@ function FilterBar(_a) {
|
|
|
10448
10448
|
selectedFilter === 3 && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts })),
|
|
10449
10449
|
selectedFilter === 4 && (React__default__default.createElement(Categories, { categories: categories, setCategories: setCategories })))))));
|
|
10450
10450
|
}
|
|
10451
|
+
////////////
|
|
10451
10452
|
var fontWigthBold = function (input) {
|
|
10452
10453
|
return { fontWeight: input ? 'bold' : 'initial' };
|
|
10453
10454
|
};
|
|
10454
|
-
var
|
|
10455
|
+
var AGE_CATEGORIES_FALLBACK = [
|
|
10455
10456
|
{
|
|
10456
10457
|
id: '1',
|
|
10457
10458
|
name: 'Adults',
|
|
@@ -10467,6 +10468,7 @@ var ageCategoriesFallback = [
|
|
|
10467
10468
|
minVal: 0,
|
|
10468
10469
|
},
|
|
10469
10470
|
];
|
|
10471
|
+
var REDIRECT_URL_FALLBACK = 'http://localhost:3000/';
|
|
10470
10472
|
|
|
10471
10473
|
export { Button$1 as Button, FilterBar };
|
|
10472
10474
|
//# sourceMappingURL=index.esm.js.map
|