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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "willba-component-library",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "A stroybook 6 with TypeScript demo",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.esm.js",
@@ -1,4 +1,4 @@
1
- import React, { useState } from '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
- setSelectedFilter,
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="Start date"
33
+ label={'Start date'}
33
34
  onClick={() => handleSelectedFilter(1)}
34
35
  />
35
36
  <Divider />
36
37
  <SelectButton
37
- label="End date"
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 && <Calendar />}
53
- {selectedFilter === 2 && <Calendar />}
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}
@@ -0,0 +1,4 @@
1
+ .filter-bar-calendar {
2
+ display: flex;
3
+ justify-content: center;
4
+ }
@@ -1,41 +1,33 @@
1
- import React, { useState } from "react";
1
+ import React, { useEffect, useState } from 'react'
2
2
 
3
- import { addDays, format } from "date-fns";
4
- import { DateRange, DayPicker } from "react-day-picker";
3
+ import { addDays } from 'date-fns'
4
+ import { DateRange, DayPicker } from 'react-day-picker'
5
5
 
6
- import "react-day-picker/dist/style.css";
6
+ import 'react-day-picker/dist/style.css'
7
+ import './Calendar.css'
7
8
 
8
- const pastMonth = new Date(2020, 10, 15);
9
+ const currentMonth = new Date()
9
10
 
10
- export default function Calendar() {
11
- const defaultSelected: DateRange = {
12
- from: pastMonth,
13
- to: addDays(pastMonth, 4),
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
- <DayPicker
32
- id="test"
33
- mode="range"
34
- numberOfMonths={2}
35
- defaultMonth={pastMonth}
36
- selected={range}
37
- footer={footer}
38
- onSelect={setRange}
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
  }
@@ -11,7 +11,7 @@ export default function Guests({
11
11
  incrementKids,
12
12
  }: any) {
13
13
  return (
14
- <div className="search-widget-guests">
14
+ <div className="filter-bar-guests">
15
15
  <h3>Guests</h3>
16
16
  <p>Who's coming?</p>
17
17
 
@@ -1,9 +1,10 @@
1
- import React, { useState } from 'react'
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
- // const [startDate, setStartDate] = useState(0);
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
- // startDate,
20
- // endDate,
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,