willba-component-library 0.0.33 → 0.0.35
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/components/calendar/Calendar.d.ts +4 -3
- package/lib/components/FilterBar/hooks/useFilterBar.d.ts +8 -5
- package/lib/index.esm.js +39 -41
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +39 -41
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +39 -41
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterBar/FilterBar.tsx +11 -6
- package/src/components/FilterBar/components/calendar/Calendar.css +4 -0
- package/src/components/FilterBar/components/calendar/Calendar.tsx +25 -33
- package/src/components/FilterBar/components/guests/Guests.tsx +1 -1
- package/src/components/FilterBar/hooks/useFilterBar.tsx +10 -5
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
|
|
3
3
|
import Divider from './components/divider/Divider'
|
|
4
4
|
import SelectButton from './components/select-button/SelectButton'
|
|
@@ -17,7 +17,8 @@ export default function FilterBar() {
|
|
|
17
17
|
guestsAdults,
|
|
18
18
|
guestsKids,
|
|
19
19
|
categories,
|
|
20
|
-
|
|
20
|
+
calendarRange,
|
|
21
|
+
setCalendarRange,
|
|
21
22
|
setGuestsAdults,
|
|
22
23
|
setGuestsKids,
|
|
23
24
|
setCategories,
|
|
@@ -29,12 +30,12 @@ export default function FilterBar() {
|
|
|
29
30
|
<div className="filter-bar">
|
|
30
31
|
<div className="filter-bar-header">
|
|
31
32
|
<SelectButton
|
|
32
|
-
label=
|
|
33
|
+
label={'Start date'}
|
|
33
34
|
onClick={() => handleSelectedFilter(1)}
|
|
34
35
|
/>
|
|
35
36
|
<Divider />
|
|
36
37
|
<SelectButton
|
|
37
|
-
label=
|
|
38
|
+
label={'End date'}
|
|
38
39
|
onClick={() => handleSelectedFilter(2)}
|
|
39
40
|
/>
|
|
40
41
|
<Divider />
|
|
@@ -49,8 +50,12 @@ export default function FilterBar() {
|
|
|
49
50
|
|
|
50
51
|
{selectedFilter && (
|
|
51
52
|
<div className="filter-bar-container">
|
|
52
|
-
{selectedFilter === 1 &&
|
|
53
|
-
|
|
53
|
+
{(selectedFilter === 1 || selectedFilter === 2) && (
|
|
54
|
+
<Calendar
|
|
55
|
+
calendarRange={calendarRange}
|
|
56
|
+
setCalendarRange={setCalendarRange}
|
|
57
|
+
/>
|
|
58
|
+
)}
|
|
54
59
|
{selectedFilter === 3 && (
|
|
55
60
|
<Guests
|
|
56
61
|
guestsAdults={guestsAdults}
|
|
@@ -1,41 +1,33 @@
|
|
|
1
|
-
import React, { useState } from
|
|
1
|
+
import React, { useEffect, useState } from 'react'
|
|
2
2
|
|
|
3
|
-
import { addDays
|
|
4
|
-
import { DateRange, DayPicker } from
|
|
3
|
+
import { addDays } from 'date-fns'
|
|
4
|
+
import { DateRange, DayPicker } from 'react-day-picker'
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import 'react-day-picker/dist/style.css'
|
|
7
|
+
import './Calendar.css'
|
|
7
8
|
|
|
8
|
-
const
|
|
9
|
+
const currentMonth = new Date()
|
|
9
10
|
|
|
10
|
-
export default function Calendar() {
|
|
11
|
-
const
|
|
12
|
-
from:
|
|
13
|
-
to: addDays(
|
|
14
|
-
};
|
|
15
|
-
const [range, setRange] = useState<DateRange | undefined>(defaultSelected);
|
|
16
|
-
|
|
17
|
-
let footer = <p>Please pick the first day.</p>;
|
|
18
|
-
if (range?.from) {
|
|
19
|
-
if (!range.to) {
|
|
20
|
-
footer = <p>{format(range.from, "PPP")}</p>;
|
|
21
|
-
} else if (range.to) {
|
|
22
|
-
footer = (
|
|
23
|
-
<p>
|
|
24
|
-
{format(range.from, "PPP")}–{format(range.to, "PPP")}
|
|
25
|
-
</p>
|
|
26
|
-
);
|
|
27
|
-
}
|
|
11
|
+
export default function Calendar({ calendarRange, setCalendarRange }: any) {
|
|
12
|
+
const defaultCalendarSelected: DateRange = {
|
|
13
|
+
from: currentMonth,
|
|
14
|
+
to: addDays(currentMonth, 0),
|
|
28
15
|
}
|
|
29
16
|
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (!calendarRange) setCalendarRange(defaultCalendarSelected)
|
|
19
|
+
}, [])
|
|
20
|
+
|
|
30
21
|
return (
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
22
|
+
<div className="filter-bar-calendar">
|
|
23
|
+
<DayPicker
|
|
24
|
+
id="test"
|
|
25
|
+
mode="range"
|
|
26
|
+
numberOfMonths={2}
|
|
27
|
+
defaultMonth={currentMonth}
|
|
28
|
+
selected={calendarRange}
|
|
29
|
+
onSelect={setCalendarRange}
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
32
|
+
)
|
|
41
33
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { DateRange } from 'react-day-picker'
|
|
3
|
+
import { addDays, format } from 'date-fns'
|
|
2
4
|
|
|
3
5
|
export default function useFilterBar() {
|
|
4
6
|
const [selectedFilter, setSelectedFilter] = useState<number | boolean>(false)
|
|
5
|
-
|
|
6
|
-
// const [endDate, setEndDate] = useState(0);
|
|
7
|
+
const [calendarRange, setCalendarRange] = useState<DateRange>()
|
|
7
8
|
const [guestsAdults, setGuestsAdults] = useState(1)
|
|
8
9
|
const [guestsKids, setGuestsKids] = useState(0)
|
|
9
10
|
const [categories, setCategories] = useState(0)
|
|
@@ -16,8 +17,10 @@ export default function useFilterBar() {
|
|
|
16
17
|
const queryParams = new URLSearchParams()
|
|
17
18
|
|
|
18
19
|
const params = {
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
startDate: calendarRange?.from
|
|
21
|
+
? format(calendarRange.from, 'yyyy-MM-dd')
|
|
22
|
+
: '',
|
|
23
|
+
endDate: calendarRange?.to ? format(calendarRange.to, 'yyyy-MM-dd') : '',
|
|
21
24
|
guestsAdults,
|
|
22
25
|
guestsKids,
|
|
23
26
|
categories,
|
|
@@ -39,6 +42,8 @@ export default function useFilterBar() {
|
|
|
39
42
|
guestsAdults,
|
|
40
43
|
guestsKids,
|
|
41
44
|
categories,
|
|
45
|
+
calendarRange,
|
|
46
|
+
setCalendarRange,
|
|
42
47
|
setSelectedFilter,
|
|
43
48
|
setGuestsAdults,
|
|
44
49
|
setGuestsKids,
|