diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/messages/DateHeader.tsx | 36 | ||||
-rw-r--r-- | src/utils/messages.ts | 25 |
2 files changed, 33 insertions, 28 deletions
diff --git a/src/components/messages/DateHeader.tsx b/src/components/messages/DateHeader.tsx index 34cc2d01..cc7dce2c 100644 --- a/src/components/messages/DateHeader.tsx +++ b/src/components/messages/DateHeader.tsx @@ -1,36 +1,15 @@ -import moment from 'moment'; import React from 'react'; import {View, Text, StyleSheet} from 'react-native'; -import {normalize} from '../../utils'; +import {getFormatedDate, normalize} from '../../utils'; -const DateHeader: React.FC = ({date}) => { - if (!date) { - return null; - } +interface DateHeaderProps { + date: object; +} - var dateMoment = moment(date).startOf('day'); - var printDate = ''; - - const TODAY = moment().startOf('day'); - const YESTERDAY = moment().subtract(1, 'day').startOf('day'); - const LAST_7_DAYS = moment().subtract(7, 'day').startOf('day'); - - if (TODAY.isSame(dateMoment)) { - printDate = 'Today'; - } else if (YESTERDAY.isSame(dateMoment)) { - printDate = 'Yesterday'; - } else if (dateMoment.isBetween(LAST_7_DAYS, YESTERDAY)) { - printDate = dateMoment.format('dddd'); - } else { - if (dateMoment.get('year') === TODAY.get('year')) { - printDate = dateMoment.format('MMMM D') + 'th'; - } else { - printDate = dateMoment.format('MMMM D ') + 'th' + dateMoment.get('year'); - } - } +const DateHeader: React.FC<DateHeaderProps> = ({date}) => { return ( - <View style={{backgroundColor: 'transparent'}}> - <Text style={styles.dateHeader}>{printDate}</Text> + <View style={styles.dateContainer}> + <Text style={styles.dateHeader}>{getFormatedDate(date)}</Text> </View> ); }; @@ -43,6 +22,7 @@ const styles = StyleSheet.create({ textAlign: 'center', marginVertical: '5%', }, + dateContainer: {backgroundColor: 'transparent'}, }); export default DateHeader; diff --git a/src/utils/messages.ts b/src/utils/messages.ts index f4215bf0..0e73f639 100644 --- a/src/utils/messages.ts +++ b/src/utils/messages.ts @@ -137,3 +137,28 @@ export const createChannel = async ( throw error; } }; + +export const getFormatedDate = (date: object) => { + const dateMoment = moment(date).startOf('day'); + let dateToRender = ''; + + const TODAY = moment().startOf('day'); + const YESTERDAY = moment().subtract(1, 'day').startOf('day'); + const LAST_7_DAYS = moment().subtract(7, 'day').startOf('day'); + + if (TODAY.isSame(dateMoment)) { + dateToRender = 'Today'; + } else if (YESTERDAY.isSame(dateMoment)) { + dateToRender = 'Yesterday'; + } else if (dateMoment.isBetween(LAST_7_DAYS, YESTERDAY)) { + dateToRender = dateMoment.format('dddd'); + } else { + if (dateMoment.get('year') === TODAY.get('year')) { + dateToRender = dateMoment.format('MMMM D') + 'th'; + } else { + dateToRender = + dateMoment.format('MMMM D ') + 'th' + dateMoment.get('year'); + } + } + return dateToRender; +}; |