From bde4b74acc1e211a5f887a56d0ba5010385b8dbf Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Tue, 20 Apr 2021 15:35:17 -0700 Subject: Moved code to components --- src/components/messages/DateHeader.tsx | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/components/messages/DateHeader.tsx (limited to 'src/components/messages/DateHeader.tsx') diff --git a/src/components/messages/DateHeader.tsx b/src/components/messages/DateHeader.tsx new file mode 100644 index 00000000..34cc2d01 --- /dev/null +++ b/src/components/messages/DateHeader.tsx @@ -0,0 +1,48 @@ +import moment from 'moment'; +import React from 'react'; +import {View, Text, StyleSheet} from 'react-native'; +import {normalize} from '../../utils'; + +const DateHeader: React.FC = ({date}) => { + if (!date) { + return null; + } + + 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'); + } + } + return ( + + {printDate} + + ); +}; + +const styles = StyleSheet.create({ + dateHeader: { + color: '#7A7A7A', + fontWeight: '600', + fontSize: normalize(11), + textAlign: 'center', + marginVertical: '5%', + }, +}); + +export default DateHeader; -- cgit v1.2.3-70-g09d2 From 59d90f15809890da05ede6a04e532da6a7af8d0b Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Wed, 21 Apr 2021 10:47:27 -0700 Subject: Moved date string manipulation code to utils --- src/components/messages/DateHeader.tsx | 36 ++++++++-------------------------- src/utils/messages.ts | 25 +++++++++++++++++++++++ 2 files changed, 33 insertions(+), 28 deletions(-) (limited to 'src/components/messages/DateHeader.tsx') 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 = ({date}) => { return ( - - {printDate} + + {getFormatedDate(date)} ); }; @@ -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; +}; -- cgit v1.2.3-70-g09d2