Skip to content

Commit 77f0ef8

Browse files
chore: update Dayzed types (#373)
* chore(deps): bump dayzed from 3.1.0 to 3.2.1 Bumps [dayzed](https://github.com/deseretdigital/dayzed) from 3.1.0 to 3.2.1. - [Release notes](https://github.com/deseretdigital/dayzed/releases) - [Commits](deseretdigital/dayzed@v3.1.0...v3.2.1) Signed-off-by: dependabot-preview[bot] <[email protected]> * chore(types): use types from dayzed itself * chore(deps): add @types/classnames * fix(tests): update tests for "Today" related code Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
1 parent ac8473f commit 77f0ef8

File tree

8 files changed

+43
-42
lines changed

8 files changed

+43
-42
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"classnames": "2.2.6",
4040
"core-js": "3.6.5",
4141
"date-fns": "2.15.0",
42-
"dayzed": "3.1.0",
42+
"dayzed": "3.2.1",
4343
"format-string-by-pattern": "1.2.1",
4444
"react-fast-compare": "3.2.0"
4545
},
@@ -51,6 +51,7 @@
5151
"@testing-library/jest-dom": "5.11.4",
5252
"@testing-library/react": "10.4.9",
5353
"@testing-library/user-event": "12.1.2",
54+
"@types/classnames": "2.2.10",
5455
"@types/jest": "26.0.10",
5556
"@types/storybook__react": "5.2.1",
5657
"autoprefixer": "9.8.6",

src/__tests__/utils.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ describe('getToday', () => {
116116
it('should return the correct result if `today` is not selectable', () => {
117117
expect(getToday(june14, june28)).toEqual({
118118
date: today,
119+
nextMonth: false,
120+
prevMonth: false,
119121
selectable: false,
120122
selected: false,
121123
today: true,
@@ -125,6 +127,8 @@ describe('getToday', () => {
125127
it('should return the correct result if `today` is selectable', () => {
126128
expect(getToday(june14)).toEqual({
127129
date: today,
130+
nextMonth: false,
131+
prevMonth: false,
128132
selectable: true,
129133
selected: false,
130134
today: true,

src/components/calendar/calendar.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
import cn from 'classnames';
22
import React, { Fragment } from 'react';
33
import { Segment } from 'semantic-ui-react';
4-
import { Locale, SemanticDatepickerProps } from 'types';
4+
import { Locale, RenderProps, SemanticDatepickerProps } from 'types';
55
import { getShortDate, getToday } from '../../utils';
66
import Button from '../button';
77
import CalendarCell from '../cell';
88
import TodayButton from '../today-button';
99
import './calendar.css';
1010

11-
type CalendarProps = {
12-
calendars: any[];
11+
interface CalendarProps extends RenderProps {
1312
filterDate: (date: Date) => boolean;
14-
getBackProps: (props: any) => void;
15-
getDateProps: (props: any) => void;
16-
getForwardProps: (props: any) => void;
1713
inline: SemanticDatepickerProps['inline'];
1814
maxDate?: Date;
1915
minDate?: Date;
@@ -26,7 +22,7 @@ type CalendarProps = {
2622
showToday: SemanticDatepickerProps['showToday'];
2723
todayButton: string;
2824
weekdays: Locale['weekdays'];
29-
};
25+
}
3026

3127
const styles: { [key: string]: React.CSSProperties } = {
3228
leftBtn: { textAlign: 'start' },

src/components/today-button.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import React from 'react';
2+
import { DateObj } from 'dayzed';
23
import { Button } from 'semantic-ui-react';
34

4-
type TodayButtonProps = {
5+
interface TodayButtonProps extends DateObj {
56
end?: boolean;
67
hovered?: boolean;
78
inRange?: boolean;
8-
selectable?: boolean;
9-
selected?: boolean;
109
start?: boolean;
11-
today?: boolean;
12-
};
10+
}
1311

1412
const style: React.CSSProperties = { marginTop: 10 };
1513

1614
const TodayButton: React.FC<TodayButtonProps> = ({
1715
end,
1816
hovered,
1917
inRange,
18+
nextMonth,
19+
prevMonth,
2020
selectable,
2121
selected,
2222
start,

src/pickers/base.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import Dayzed from 'dayzed';
22
import React from 'react';
3-
import { DayzedProps } from '../types';
3+
import { BaseDatePickerProps } from '../types';
44
import { getArrowKeyHandlers } from './utils';
55

6-
class BaseDatePicker extends React.Component<DayzedProps> {
6+
class BaseDatePicker extends React.Component<BaseDatePickerProps> {
77
state = {
88
offset: 0,
99
};

src/types/index.ts

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Props as DayzedProps, RenderProps } from 'dayzed';
12
import { FormInputProps, SemanticICONS } from 'semantic-ui-react';
23

34
export type Object = { [key: string]: any };
@@ -77,29 +78,21 @@ export type SemanticDatepickerProps = PickedDayzedProps &
7778
showToday: boolean;
7879
type: 'basic' | 'range';
7980
datePickerOnly: boolean;
80-
value: DayzedProps['selected'];
81+
value: DayzedProps['selected'] | null;
8182
};
8283

83-
export type DayzedProps = {
84-
children: (children: any) => React.ReactNode;
85-
date?: Date;
86-
firstDayOfWeek: number;
87-
maxDate?: Date;
88-
minDate?: Date;
89-
monthsToDisplay: number;
90-
offset: number;
91-
onDateSelected: (dateObj: any, event: React.SyntheticEvent) => void;
92-
onOffsetChanged: () => void;
93-
selected: Date | Date[] | null;
94-
showOutsideDays: boolean;
84+
export type BaseDatePickerProps = DayzedProps & {
85+
children: any;
9586
};
9687

97-
export type BasicDatePickerProps = DayzedProps & {
88+
export interface BasicDatePickerProps extends BaseDatePickerProps {
9889
onChange: (event: React.SyntheticEvent, date: Date | null) => void;
9990
selected: Date;
100-
};
91+
}
10192

102-
export type RangeDatePickerProps = DayzedProps & {
93+
export interface RangeDatePickerProps extends BaseDatePickerProps {
10394
onChange: (event: React.SyntheticEvent, dates: Date[] | null) => void;
10495
selected: Date[];
105-
};
96+
}
97+
98+
export { DayzedProps, RenderProps };

src/utils.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
import { convertTokens } from '@date-fns/upgrade/v2';
2+
import { parse } from 'date-fns';
13
import format from 'date-fns/format';
24
import isBefore from 'date-fns/isBefore';
35
import startOfDay from 'date-fns/startOfDay';
6+
import { DateObj } from 'dayzed';
47
import { Object } from './types';
58

6-
import { convertTokens } from '@date-fns/upgrade/v2';
7-
import { parse } from 'date-fns';
8-
99
export const isSelectable = (date: Date, minDate?: Date, maxDate?: Date) => {
1010
if (
1111
(minDate && isBefore(date, minDate)) ||
@@ -17,11 +17,13 @@ export const isSelectable = (date: Date, minDate?: Date, maxDate?: Date) => {
1717
return true;
1818
};
1919

20-
export const getToday = (minDate?: Date, maxDate?: Date) => {
20+
export const getToday = (minDate?: Date, maxDate?: Date): DateObj => {
2121
const today = new Date();
2222

2323
return {
2424
date: startOfDay(today),
25+
nextMonth: false,
26+
prevMonth: false,
2527
selectable: isSelectable(today, minDate, maxDate),
2628
selected: false,
2729
today: true,
@@ -49,11 +51,11 @@ export const pick = (keysToPick: string[], obj: Object) => {
4951
return newObj;
5052
};
5153

52-
export const moveElementsByN = (n: number, arr: any[]) =>
54+
export const moveElementsByN = <T>(n: number, arr: T[]) =>
5355
arr.slice(n).concat(arr.slice(0, n));
5456

5557
export const formatSelectedDate = (
56-
selectedDate: Date | Date[] | null,
58+
selectedDate: Date | Date[] | null | undefined,
5759
dateFormat: string
5860
) => {
5961
if (!selectedDate) {

yarn.lock

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2766,6 +2766,11 @@
27662766
resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.0.tgz#7da1c0d44ff1c7eb660a36ec078ea61ba7eb42cb"
27672767
integrity sha512-TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw==
27682768

2769+
2770+
version "2.2.10"
2771+
resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999"
2772+
integrity sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ==
2773+
27692774
"@types/color-name@^1.1.1":
27702775
version "1.1.1"
27712776
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
@@ -5767,10 +5772,10 @@ date-now@^0.1.4:
57675772
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
57685773
integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
57695774

5770-
dayzed@3.1.0:
5771-
version "3.1.0"
5772-
resolved "https://registry.yarnpkg.com/dayzed/-/dayzed-3.1.0.tgz#ca02d0e02828f2ebdfe100bf834f0a888af1c05a"
5773-
integrity sha512-Mwb/T78ppKDIoXsNgSLfIYfIO7ylal+vKp8VVMzK6rQq4VJSE7AdrGFN2EQDmve037J9TKZo06mX+QuuKQ2raA==
5775+
dayzed@3.2.1:
5776+
version "3.2.1"
5777+
resolved "https://registry.yarnpkg.com/dayzed/-/dayzed-3.2.1.tgz#0387abfcaf9da57128ddcf92dfc3e2fceea5fcde"
5778+
integrity sha512-3jnjfUOGxGA31iYAR2QfiDzWVfl3ccejm7/ya5P1gYpOtc9b4PEcl0xUAf7f74czEteAC/oPQCspNv/LAJlIYw==
57745779
dependencies:
57755780
"@babel/runtime" "^7.6.2"
57765781
date-fns "^2.0.0"

0 commit comments

Comments
 (0)