willba-component-library 0.0.88 → 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 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}] |
@@ -5,7 +5,8 @@ import '../../themes/Default.css';
5
5
  interface FilterBarProps {
6
6
  vendor?: string;
7
7
  language?: string;
8
- ageCategories: AgeCategoryType[];
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
- export default function useFilterBar(ageCategories: any): {
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
@@ -38,8 +38,9 @@ interface AgeCategoryType {
38
38
  interface FilterBarProps {
39
39
  vendor?: string;
40
40
  language?: string;
41
- ageCategories: AgeCategoryType[];
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(ageCategories) {
7990
- var _a = useState(false), selectedFilter = _a[0], setSelectedFilter = _a[1];
7991
- var _b = useState(), calendarRange = _b[0], setCalendarRange = _b[1];
7992
- var _c = useState(0), categories = _c[0], setCategories = _c[1];
7993
- var _d = useState({}), ageCategoryCounts = _d[0], setAgeCategoryCounts = _d[1];
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
- var url = "http://localhost:4000/en/events/?".concat(queryParams.toString());
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 ? ageCategoriesFallback : _b;
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 _c = useState(0); _c[0]; var setRerenderKey = _c[1];
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 _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, handleResetFilters = _d.handleResetFilters;
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 ageCategoriesFallback = [
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