From decaa94ef1c98d9fe2167092da0b1590fad389cf Mon Sep 17 00:00:00 2001 From: Pierre Michel Date: Fri, 18 Aug 2023 06:25:56 -0600 Subject: [PATCH 1/3] Change the way we parse a date because it was converting in wrong timezone date Signed-off-by: Pierre Michel --- src/libs/ReportUtils.js | 4 ++-- src/libs/TransactionUtils.js | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js index 77507164fe03..3b0c6fcf8ca9 100644 --- a/src/libs/ReportUtils.js +++ b/src/libs/ReportUtils.js @@ -1,5 +1,5 @@ import _ from 'underscore'; -import {format} from 'date-fns'; +import {format, parseISO} from 'date-fns'; import Str from 'expensify-common/lib/str'; import lodashGet from 'lodash/get'; import lodashIntersection from 'lodash/intersection'; @@ -1344,7 +1344,7 @@ function getModifiedExpenseMessage(reportAction) { const hasModifiedCreated = _.has(reportActionOriginalMessage, 'oldCreated') && _.has(reportActionOriginalMessage, 'created'); if (hasModifiedCreated) { // Take only the YYYY-MM-DD value as the original date includes timestamp - let formattedOldCreated = new Date(reportActionOriginalMessage.oldCreated); + let formattedOldCreated = parseISO(reportActionOriginalMessage.oldCreated); formattedOldCreated = format(formattedOldCreated, CONST.DATE.FNS_FORMAT_STRING); return `changed the request date to ${reportActionOriginalMessage.created} (previously ${formattedOldCreated})`; } diff --git a/src/libs/TransactionUtils.js b/src/libs/TransactionUtils.js index 90b6ca72bd4a..db19d6b5c195 100644 --- a/src/libs/TransactionUtils.js +++ b/src/libs/TransactionUtils.js @@ -1,5 +1,5 @@ import Onyx from 'react-native-onyx'; -import {format} from 'date-fns'; +import {format, parseISO} from 'date-fns'; import lodashGet from 'lodash/get'; import _ from 'underscore'; import CONST from '../CONST'; @@ -7,6 +7,7 @@ import ONYXKEYS from '../ONYXKEYS'; import DateUtils from './DateUtils'; import * as NumberUtils from './NumberUtils'; + let allTransactions = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, @@ -175,9 +176,11 @@ function getCurrency(transaction) { */ function getCreated(transaction) { const created = lodashGet(transaction, 'modifiedCreated', '') || lodashGet(transaction, 'created', ''); - if (created) { - return format(new Date(created), CONST.DATE.FNS_FORMAT_STRING); + const createdDate = parseISO(created); + if (createdDate) { + return format(createdDate, CONST.DATE.FNS_FORMAT_STRING); } + return ''; } From 62fe31047453ced28fe7fe53fdc2d16c5c77147a Mon Sep 17 00:00:00 2001 From: Pierre Michel Date: Fri, 18 Aug 2023 06:41:42 -0600 Subject: [PATCH 2/3] After npm run prettier Signed-off-by: Pierre Michel --- src/libs/TransactionUtils.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libs/TransactionUtils.js b/src/libs/TransactionUtils.js index db19d6b5c195..b03d2bd41fa6 100644 --- a/src/libs/TransactionUtils.js +++ b/src/libs/TransactionUtils.js @@ -7,7 +7,6 @@ import ONYXKEYS from '../ONYXKEYS'; import DateUtils from './DateUtils'; import * as NumberUtils from './NumberUtils'; - let allTransactions = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, @@ -176,7 +175,7 @@ function getCurrency(transaction) { */ function getCreated(transaction) { const created = lodashGet(transaction, 'modifiedCreated', '') || lodashGet(transaction, 'created', ''); - const createdDate = parseISO(created); + const createdDate = parseISO(created); if (createdDate) { return format(createdDate, CONST.DATE.FNS_FORMAT_STRING); } From ffa7b085d95e3fd318eb3fda7f60bc84d91bec64 Mon Sep 17 00:00:00 2001 From: Pierre Michel Date: Mon, 21 Aug 2023 05:53:50 -0600 Subject: [PATCH 3/3] Verify if the date is valid Signed-off-by: Pierre Michel --- src/libs/TransactionUtils.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/TransactionUtils.js b/src/libs/TransactionUtils.js index b03d2bd41fa6..df04bc2cbeef 100644 --- a/src/libs/TransactionUtils.js +++ b/src/libs/TransactionUtils.js @@ -1,5 +1,5 @@ import Onyx from 'react-native-onyx'; -import {format, parseISO} from 'date-fns'; +import {format, parseISO, isValid} from 'date-fns'; import lodashGet from 'lodash/get'; import _ from 'underscore'; import CONST from '../CONST'; @@ -176,7 +176,7 @@ function getCurrency(transaction) { function getCreated(transaction) { const created = lodashGet(transaction, 'modifiedCreated', '') || lodashGet(transaction, 'created', ''); const createdDate = parseISO(created); - if (createdDate) { + if (isValid(createdDate)) { return format(createdDate, CONST.DATE.FNS_FORMAT_STRING); }