From e004fd362583a020b07f87536aac077269eaad27 Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Tue, 27 Oct 2020 18:34:08 -0400 Subject: date picker done (#80) --- src/components/common/TaggDatePicker.tsx | 30 +++++++ src/components/common/index.ts | 1 + src/components/onboarding/BirthDatePicker.tsx | 125 ++++++++++++++++++++++++++ src/components/onboarding/TaggDatePicker.tsx | 63 ------------- src/components/onboarding/index.ts | 2 +- 5 files changed, 157 insertions(+), 64 deletions(-) create mode 100644 src/components/common/TaggDatePicker.tsx create mode 100644 src/components/onboarding/BirthDatePicker.tsx delete mode 100644 src/components/onboarding/TaggDatePicker.tsx (limited to 'src/components') diff --git a/src/components/common/TaggDatePicker.tsx b/src/components/common/TaggDatePicker.tsx new file mode 100644 index 00000000..d8010251 --- /dev/null +++ b/src/components/common/TaggDatePicker.tsx @@ -0,0 +1,30 @@ +import React, {useState} from 'react'; +import DatePicker from 'react-native-date-picker'; + +interface TaggDatePickerProps { + handleDateUpdate: (_: Date) => void; + maxDate: Date; + textColor: string; +} + +const TaggDatePicker: React.FC = ({ + handleDateUpdate, + maxDate, + textColor, +}) => { + const [date, setDate] = useState(new Date()); + return ( + { + setDate(newDate); + handleDateUpdate(newDate); + }} + /> + ); +}; + +export default TaggDatePicker; diff --git a/src/components/common/index.ts b/src/components/common/index.ts index 950b3f61..87ebe810 100644 --- a/src/components/common/index.ts +++ b/src/components/common/index.ts @@ -11,4 +11,5 @@ export {default as LoadingIndicator} from './LoadingIndicator'; export {default as DateLabel} from './DateLabel'; export {default as SocialLinkModal} from './SocialLinkModal'; export {default as ComingSoon} from './ComingSoon'; +export {default as TaggDatePicker} from './TaggDatePicker'; export * from './post'; diff --git a/src/components/onboarding/BirthDatePicker.tsx b/src/components/onboarding/BirthDatePicker.tsx new file mode 100644 index 00000000..f97f1a72 --- /dev/null +++ b/src/components/onboarding/BirthDatePicker.tsx @@ -0,0 +1,125 @@ +import moment from 'moment'; +import React, {useState} from 'react'; +import { + Modal, + StyleSheet, + Text, + TextInputProps, + TouchableWithoutFeedback, + View, +} from 'react-native'; +import {Button} from 'react-native-elements'; +import {TouchableOpacity} from 'react-native-gesture-handler'; +import {TaggDatePicker} from '../common'; + +interface BirthDatePickerProps extends TextInputProps { + handleBDUpdate: (_: Date) => void; + width?: number | string; +} + +const BirthDatePicker = React.forwardRef( + (props: BirthDatePickerProps, ref: any) => { + const getMaxDate = () => { + const maxDate = moment().subtract(13, 'y').subtract(1, 'd'); + return maxDate.toDate(); + }; + const [date, setDate] = useState(new Date(0)); + const [hidden, setHidden] = useState(true); + const [updated, setUpdated] = useState(false); + const textColor = updated ? 'white' : '#ddd'; + const updateDate = (newDate: Date) => { + props.handleBDUpdate(newDate); + setDate(newDate); + setUpdated(true); + }; + return ( + + { + setHidden(false); + }}> + + {updated ? moment(date).format('YYYY-MM-DD') : 'Date of Birth'} + + + + { + setHidden(true); + }}> + + + + +