diff --git a/package.json b/package.json index 5f8745f..4ca687d 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "@raidguild/design-system", - "version": "0.5.2", + "version": "0.5.3", "license": "MIT", "author": "Raid Guild", "main": "./dist/src/index.js", "module": "./dist/src/index.js", - "types": "./dist/index.d.ts", + "types": "./dist/src/index.d.ts", "type": "module", "homepage": "https://raid-guild.github.io/design-system", "files": [ diff --git a/src/components/chakra/index.ts b/src/components/chakra/index.ts index 4a08679..ce240fa 100644 --- a/src/components/chakra/index.ts +++ b/src/components/chakra/index.ts @@ -188,6 +188,7 @@ export type { NumberInputProps as ChakraNumberInputProps, RadioProps as ChakraRadioProps, RadioGroupProps as ChakraRadioGroupProps, + ResponsiveValue, SelectProps as ChakraSelectProps, SliderProps as ChakraSliderProps, SpinnerProps as ChakraSpinnerProps, diff --git a/src/components/forms/DatePicker/DatePicker.tsx b/src/components/forms/DatePicker/DatePicker.tsx index ce38661..ac20e47 100644 --- a/src/components/forms/DatePicker/DatePicker.tsx +++ b/src/components/forms/DatePicker/DatePicker.tsx @@ -2,15 +2,19 @@ import React from 'react'; import ReactDatePicker, { ReactDatePickerProps } from 'react-datepicker'; import 'react-datepicker/dist/react-datepicker.css'; import { Controller, RegisterOptions } from 'react-hook-form'; +import { UseFormReturn } from 'react-hook-form/dist/types/form'; +import _ from 'lodash'; +import { FaInfoCircle } from 'react-icons/fa'; import { FormControl, FormLabel, Stack, FormErrorMessage, -} from '@chakra-ui/react'; -import { UseFormReturn } from 'react-hook-form/dist/types/form'; -import _ from 'lodash'; + HStack, + Icon, +} from '../../chakra'; import { CustomDatePickerButton } from './CustomDatePickerButton'; +import { Tooltip } from '../../atoms'; // TODO handle separate controlled component // TODO currently only single date is supported, but type shows that it can be a range @@ -21,19 +25,17 @@ export type DatePickerProps = { tip?: string; localForm: Pick; registerOptions?: RegisterOptions; + tooltip?: string; variant?: string; spacing?: number | string; - // onChange?: ( - // date: Date | [Date | null, Date | null] | null, - // event: SyntheticEvent | undefined - // ) => void; -} & ReactDatePickerProps; +} & Omit; const DatePicker: React.FC = ({ label, name, localForm, registerOptions, + tooltip, variant, spacing, ...props @@ -69,7 +71,20 @@ const DatePicker: React.FC = ({ render={({ field }) => ( - {label && {label}} + + {label && {label}} + {tooltip && ( + + + + )} + = ({ label, name, localForm, + registerOptions, helperText, tooltip, ...props @@ -55,21 +56,18 @@ const Textarea: React.FC = ({ hasArrow placement='end' > - - - + /> )} - + {helperText && {helperText}} {typeof error === 'string' && ( {error} diff --git a/src/stories/atoms/DatePicker.stories.tsx b/src/stories/forms/DatePicker.stories.tsx similarity index 61% rename from src/stories/atoms/DatePicker.stories.tsx rename to src/stories/forms/DatePicker.stories.tsx index 5356750..642ecc8 100644 --- a/src/stories/atoms/DatePicker.stories.tsx +++ b/src/stories/forms/DatePicker.stories.tsx @@ -1,19 +1,23 @@ import React, { useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { StoryFn } from '@storybook/react'; +import _ from 'lodash'; import { DatePicker as DatePickerComponent, Box, Stack, Text } from '../..'; export default { - title: 'Components/Atoms/DatePicker', + title: 'Components/Forms/DatePicker', component: DatePickerComponent, }; // as Meta; const DatePicker: StoryFn = () => { const localForm = useForm(); + const { watch, reset } = _.pick(localForm, ['watch', 'reset']); useEffect(() => { - localForm.reset({ raidStartDate: new Date() }); + reset({ raidStartDate: new Date() }); }, []); + const startDate = watch('raidStartDate')?.toLocaleDateString(); + return ( @@ -21,15 +25,9 @@ const DatePicker: StoryFn = () => { name='raidStartDate' localForm={localForm} label='Raid Start Date' - onChange={(selectedDate) => { - localForm.setValue('raidStartDate', selectedDate as Date); - }} + tooltip='The date the raid is expected to start' /> - - Selected Date:{' '} - {localForm.getValues('raidStartDate') && - localForm.getValues('raidStartDate').toLocaleDateString()} - + Selected Date: {startDate} );