willba-component-library 0.2.11 → 0.2.13

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.2.11",
3
+ "version": "0.2.13",
4
4
  "description": "A custom UI component library",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.esm.js",
@@ -1,6 +1,10 @@
1
1
  .will-root .will-calendar-wrapper {
2
2
  box-shadow: var(--will-box-shadow-dark);
3
3
  border-radius: 20px;
4
+ background-color: var(--will-white);
5
+ position: absolute;
6
+ top: 0;
7
+ left: 0;
4
8
  }
5
9
 
6
10
  .will-root .will-calendar-wrapper .will-calendar-header,
@@ -37,8 +37,10 @@ export const Primary: Story = {
37
37
  primary: '',
38
38
  secondary: '',
39
39
  },
40
- openCalendar: true,
41
- onSubmit: (val: any) => console.log(val),
40
+ toggleCalendar: true,
41
+ onSubmit: (val) => console.log(val),
42
+ setToggleCalendar: (val) => console.log(val),
43
+ requestDates: (val) => console.log(val),
42
44
  },
43
45
  render: (args) => (
44
46
  <div style={{ padding: '30px', height: '100vh' }}>
@@ -1,4 +1,4 @@
1
- import React, { useEffect } from 'react'
1
+ import React from 'react'
2
2
  import { useTranslation } from 'react-i18next'
3
3
 
4
4
  import useTheme from '../../themes/useTheme'
@@ -11,7 +11,7 @@ import {
11
11
  } from '../../core/hooks'
12
12
  import { nightsCount, parseDate } from '../../core/utils'
13
13
 
14
- import { FilterCalendarType } from './FilterCalendarTypes'
14
+ import { FilterCalendarTypes } from './FilterCalendarTypes'
15
15
  import { useFilterCalendar } from './hooks/useFilterCalendar'
16
16
 
17
17
  import './FilterCalendar.css'
@@ -20,32 +20,24 @@ export default function FilterCalendar({
20
20
  calendarOffset,
21
21
  language,
22
22
  palette,
23
- openCalendar,
24
23
  onSubmit,
25
24
  calendarOffsetGroup,
26
- }: FilterCalendarType) {
25
+ toggleCalendar,
26
+ setToggleCalendar,
27
+ requestDates,
28
+ }: FilterCalendarTypes) {
27
29
  const themePalette = useTheme({ palette })
28
30
 
29
31
  // Translations
30
32
  useUpdateTranslations({ language })
31
33
  const { t } = useTranslation()
32
34
 
33
- const {
34
- handleSubmit,
35
- setToggleCalendar,
36
- setCalendarRange,
37
- handleClearDates,
38
- toggleCalendar,
39
- calendarRange,
40
- } = useFilterCalendar({ onSubmit })
35
+ const { handleSubmit, setCalendarRange, handleClearDates, calendarRange } =
36
+ useFilterCalendar({ onSubmit, setToggleCalendar })
41
37
 
42
38
  // Display component after fully loaded
43
39
  useAwaitRender()
44
40
 
45
- useEffect(() => {
46
- if (openCalendar) setToggleCalendar(true)
47
- }, [openCalendar])
48
-
49
41
  // Handle close filter section
50
42
  const { filtersRef } = useCloseFilterSection({
51
43
  handleSelectedFilter: setToggleCalendar,
@@ -69,6 +61,7 @@ export default function FilterCalendar({
69
61
  selectedPath={'/rooms'}
70
62
  language={language}
71
63
  calendarOffsetGroup={calendarOffsetGroup}
64
+ requestDates={requestDates}
72
65
  />
73
66
  </div>
74
67
  <div className={`will-calendar-footer`}>
@@ -1,10 +1,12 @@
1
+ import { CSSProperties } from 'react'
1
2
  import { DateRange } from 'react-day-picker'
2
3
 
3
4
  import { Palette } from '../../themes/useTheme'
4
5
  import { CalendarTypes } from '../../core/components/calendar/CalendarTypes'
5
6
 
6
- export interface FilterCalendarType extends Partial<CalendarTypes> {
7
+ export interface FilterCalendarTypes extends Partial<CalendarTypes> {
7
8
  palette: Palette
8
- openCalendar?: boolean
9
9
  onSubmit: (val: DateRange) => void
10
+ toggleCalendar: boolean
11
+ setToggleCalendar: (val: boolean) => void
10
12
  }
@@ -3,13 +3,14 @@ import { DateRange } from 'react-day-picker'
3
3
 
4
4
  type Props = {
5
5
  onSubmit: (val: any) => void
6
+ setToggleCalendar: (val: boolean) => void
6
7
  }
7
8
 
8
- export const useFilterCalendar = ({ onSubmit }: Props) => {
9
+ export const useFilterCalendar = ({ onSubmit, setToggleCalendar }: Props) => {
9
10
  const [calendarRange, setCalendarRange] = useState<DateRange | undefined>()
10
- const [toggleCalendar, setToggleCalendar] = useState<boolean>(false)
11
11
 
12
12
  const handleSubmit = () => {
13
+ setToggleCalendar(false)
13
14
  return onSubmit(calendarRange)
14
15
  }
15
16
 
@@ -20,10 +21,8 @@ export const useFilterCalendar = ({ onSubmit }: Props) => {
20
21
  return {
21
22
  handleSubmit,
22
23
  handleClearDates,
23
- setToggleCalendar,
24
24
  setCalendarRange,
25
25
 
26
26
  calendarRange,
27
- toggleCalendar,
28
27
  }
29
28
  }
@@ -17,6 +17,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
17
17
  selectedPath,
18
18
  language,
19
19
  calendarOffsetGroup,
20
+ requestDates,
20
21
  }: CalendarTypes,
21
22
  ref
22
23
  ) => {
@@ -68,6 +69,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
68
69
  defaultMonth={selectedStartDate || disabledDays[0].from}
69
70
  disabled={calendarOffsetGroup || disabledDays}
70
71
  fromMonth={today}
72
+ onMonthChange={(val) => (requestDates ? requestDates(val) : null)}
71
73
  />
72
74
  </div>
73
75
  </div>
@@ -14,4 +14,5 @@ export type CalendarTypes = {
14
14
  from: Date
15
15
  to: Date
16
16
  }[]
17
+ requestDates?: (val: Date) => void
17
18
  }
package/src/index.ts CHANGED
@@ -3,4 +3,6 @@ import FilterBar from './components/FilterBar'
3
3
  import FilterCalendar from './components/FilterCalendar'
4
4
 
5
5
  export { Button, FilterBar, FilterCalendar }
6
+
6
7
  export type { Tab } from './components/FilterBar/FilterBarTypes'
8
+ export type { FilterCalendarTypes } from './components/FilterCalendar/FilterCalendarTypes'