From 1fa392112af78502a541b80fe977a21fcbdb66fb Mon Sep 17 00:00:00 2001 From: Bryce Osterhaus Date: Tue, 2 Jun 2020 15:32:08 -0700 Subject: [PATCH 1/2] feat(@clayui/date-picker): remove moment.js and use date-fns helpers --- packages/clay-date-picker/package.json | 2 +- .../clay-date-picker/src/DateNavigation.tsx | 7 ++- packages/clay-date-picker/src/DayNumber.tsx | 27 +++++----- packages/clay-date-picker/src/Helpers.ts | 54 +++++++++++++------ packages/clay-date-picker/src/Hooks.ts | 19 +++---- packages/clay-date-picker/src/InputDate.tsx | 11 ++-- packages/clay-date-picker/src/index.tsx | 48 +++++++++-------- packages/clay-date-picker/stories/index.tsx | 17 ++---- packages/demos/stories/Recharts.tsx | 8 ++- yarn.lock | 7 ++- 10 files changed, 108 insertions(+), 92 deletions(-) diff --git a/packages/clay-date-picker/package.json b/packages/clay-date-picker/package.json index aad2767597..81f0613dd9 100644 --- a/packages/clay-date-picker/package.json +++ b/packages/clay-date-picker/package.json @@ -28,7 +28,7 @@ "@clayui/icon": "^3.0.5", "@clayui/time-picker": "^3.1.3", "classnames": "^2.2.6", - "moment": "^2.22.2" + "date-fns": "^2.14.0" }, "peerDependencies": { "@clayui/css": "3.x", diff --git a/packages/clay-date-picker/src/DateNavigation.tsx b/packages/clay-date-picker/src/DateNavigation.tsx index 4a5bec507e..1c7ba6d991 100644 --- a/packages/clay-date-picker/src/DateNavigation.tsx +++ b/packages/clay-date-picker/src/DateNavigation.tsx @@ -5,10 +5,9 @@ import Button from '@clayui/button'; import Icon from '@clayui/icon'; -import moment from 'moment'; import React from 'react'; -import * as Helpers from './Helpers'; +import {addMonths, range} from './Helpers'; import Select, {ISelectOption} from './Select'; import {IAriaLabels, IYears} from './types'; @@ -40,7 +39,7 @@ const ClayDatePickerDateNavigation: React.FunctionComponent = ({ }) => { const memoizedYears: Array = React.useMemo( () => - Helpers.range(years).map((elem) => { + range(years).map((elem) => { return { label: elem, value: elem, @@ -69,7 +68,7 @@ const ClayDatePickerDateNavigation: React.FunctionComponent = ({ * years in the range */ function handleChangeMonth(month: number) { - const date = moment(currentMonth).clone().add(month, 'M').toDate(); + const date = addMonths(currentMonth, month); const year = date.getFullYear(); if (memoizedYears.find((elem) => elem.value === year)) { diff --git a/packages/clay-date-picker/src/DayNumber.tsx b/packages/clay-date-picker/src/DayNumber.tsx index 9c25557c20..ae3819857c 100644 --- a/packages/clay-date-picker/src/DayNumber.tsx +++ b/packages/clay-date-picker/src/DayNumber.tsx @@ -4,10 +4,9 @@ */ import classnames from 'classnames'; -import moment from 'moment'; import React from 'react'; -import {IDay} from './Helpers'; +import {IDay, formatDate, setDate} from './Helpers'; interface IProps { day: IDay; @@ -25,27 +24,25 @@ const ClayDatePickerDayNumber: React.FunctionComponent = ({ const classNames = classnames( 'date-picker-date date-picker-calendar-item', { - active: - moment(day.date).format('YYYY-MM-DD') === - moment(daySelected).format('YYYY-MM-DD'), + active: day.date.toDateString() === daySelected.toDateString(), disabled: day.outside || disabled, } ); - const handleClick = () => onClick(day.date); - return (