From 4fcbf609f5f2da8185c16aa7ef57ee627b6cada4 Mon Sep 17 00:00:00 2001 From: Revanshu Paliwal Date: Fri, 19 Aug 2022 16:06:35 +0200 Subject: [PATCH] [NO JIRA] Upgrade date-fns --- server/sonar-web/package.json | 2 +- .../src/main/js/api/mocks/ComputeEngineServiceMock.ts | 9 ++++++--- .../components/project-card/ProjectCardMeasures.tsx | 3 ++- .../src/main/js/components/controls/DateRangeInput.tsx | 4 ++-- .../src/main/js/components/intl/DateFromNow.tsx | 2 +- .../sonar-web/src/main/js/components/intl/dateUtils.ts | 4 +++- server/sonar-web/src/main/js/helpers/dates.ts | 3 +-- server/sonar-web/yarn.lock | 10 +++++----- 8 files changed, 21 insertions(+), 16 deletions(-) diff --git a/server/sonar-web/package.json b/server/sonar-web/package.json index 3658e319747..9122f528e8a 100644 --- a/server/sonar-web/package.json +++ b/server/sonar-web/package.json @@ -16,7 +16,7 @@ "d3-selection": "1.4.1", "d3-shape": "1.3.7", "d3-zoom": "1.8.3", - "date-fns": "1.30.1", + "date-fns": "2.29.2", "dompurify": "2.3.10", "formik": "1.2.0", "lodash": "4.17.21", diff --git a/server/sonar-web/src/main/js/api/mocks/ComputeEngineServiceMock.ts b/server/sonar-web/src/main/js/api/mocks/ComputeEngineServiceMock.ts index 191de3056cc..e718aaa7bdc 100644 --- a/server/sonar-web/src/main/js/api/mocks/ComputeEngineServiceMock.ts +++ b/server/sonar-web/src/main/js/api/mocks/ComputeEngineServiceMock.ts @@ -19,6 +19,7 @@ */ import { differenceInMilliseconds, isAfter, isBefore } from 'date-fns'; import { cloneDeep, groupBy, sortBy } from 'lodash'; +import { parseDate } from '../../helpers/dates'; import { mockTask } from '../../helpers/mocks/tasks'; import { ActivityRequestParameters, Task, TaskStatuses, TaskTypes } from '../../types/tasks'; import { @@ -100,9 +101,11 @@ export default class ComputeEngineServiceMock { (data.component && task.componentKey !== data.component) || (data.status && !data.status.split(',').includes(task.status)) || (data.type && task.type !== data.type) || - (data.minSubmittedAt && isBefore(task.submittedAt, data.minSubmittedAt)) || + (data.minSubmittedAt && + isBefore(parseDate(task.submittedAt), parseDate(data.minSubmittedAt))) || (data.maxExecutedAt && - (!task.executedAt || isAfter(task.executedAt, data.maxExecutedAt))) || + (!task.executedAt || + isAfter(parseDate(task.executedAt), parseDate(data.maxExecutedAt)))) || (data.q && !task.id.includes(data.q) && !task.componentName?.includes(data.q) && @@ -148,7 +151,7 @@ export default class ComputeEngineServiceMock { case TaskStatuses.Pending: stats.pendingTime = Math.max( stats.pendingTime, - differenceInMilliseconds(task.submittedAt, Date.now()) + differenceInMilliseconds(parseDate(task.submittedAt), Date.now()) ); stats.pending += 1; break; diff --git a/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx b/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx index 7962c731b69..fb54325b30c 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx +++ b/server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCardMeasures.tsx @@ -25,6 +25,7 @@ import Measure from '../../../../components/measure/Measure'; import CoverageRating from '../../../../components/ui/CoverageRating'; import DuplicationsRating from '../../../../components/ui/DuplicationsRating'; import Rating from '../../../../components/ui/Rating'; +import { parseDate } from '../../../../helpers/dates'; import { translate, translateWithParameters } from '../../../../helpers/l10n'; import { isDefined } from '../../../../helpers/types'; import { ComponentQualifier } from '../../../../types/component'; @@ -166,7 +167,7 @@ export default function ProjectCardMeasures(props: ProjectCardMeasuresProps) { } const newCodeTimespan = newCodeStartingDate - ? differenceInMilliseconds(Date.now(), newCodeStartingDate) + ? differenceInMilliseconds(Date.now(), parseDate(newCodeStartingDate)) : 0; const measureList = [ diff --git a/server/sonar-web/src/main/js/components/controls/DateRangeInput.tsx b/server/sonar-web/src/main/js/components/controls/DateRangeInput.tsx index 524b719f227..4d3aee13173 100644 --- a/server/sonar-web/src/main/js/components/controls/DateRangeInput.tsx +++ b/server/sonar-web/src/main/js/components/controls/DateRangeInput.tsx @@ -69,7 +69,7 @@ export default class DateRangeInput extends React.PureComponent { data-test="from" highlightTo={this.to} minDate={minDate} - maxDate={maxDate && this.to ? min(maxDate, this.to) : maxDate || this.to} + maxDate={maxDate && this.to ? min([maxDate, this.to]) : maxDate || this.to} onChange={this.handleFromChange} placeholder={translate('start_date')} value={this.from} @@ -79,7 +79,7 @@ export default class DateRangeInput extends React.PureComponent { currentMonth={this.from} data-test="to" highlightFrom={this.from} - minDate={minDate && this.from ? max(minDate, this.from) : minDate || this.from} + minDate={minDate && this.from ? max([minDate, this.from]) : minDate || this.from} maxDate={maxDate} onChange={this.handleToChange} placeholder={translate('end_date')} diff --git a/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx b/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx index a8fdadc45a1..76ec0f6ce55 100644 --- a/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx +++ b/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx @@ -45,7 +45,7 @@ export default function DateFromNow(props: DateFromNowProps) { return <>{originalChildren(translate('never'))}; } - if (hourPrecision && differenceInHours(Date.now(), date) < 1) { + if (hourPrecision && differenceInHours(Date.now(), parseDate(date)) < 1) { children = () => originalChildren(translate('less_than_1_hour_ago')); } diff --git a/server/sonar-web/src/main/js/components/intl/dateUtils.ts b/server/sonar-web/src/main/js/components/intl/dateUtils.ts index bd1d8f039d7..75a24b16561 100644 --- a/server/sonar-web/src/main/js/components/intl/dateUtils.ts +++ b/server/sonar-web/src/main/js/components/intl/dateUtils.ts @@ -24,13 +24,15 @@ import { differenceInYears } from 'date-fns'; import { FormattedRelativeTime } from 'react-intl'; +import { parseDate } from '../../helpers/dates'; import { ParsableDate } from '../../types/dates'; const UPDATE_INTERVAL_IN_SECONDS = 10; export function getRelativeTimeProps( - date: ParsableDate + parsableDate: ParsableDate ): Pick { + const date = parseDate(parsableDate); const y = differenceInYears(date, Date.now()); if (Math.abs(y) > 0) { diff --git a/server/sonar-web/src/main/js/helpers/dates.ts b/server/sonar-web/src/main/js/helpers/dates.ts index 5840f36bde4..297a180c258 100644 --- a/server/sonar-web/src/main/js/helpers/dates.ts +++ b/server/sonar-web/src/main/js/helpers/dates.ts @@ -17,7 +17,6 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { parse } from 'date-fns'; import { ParsableDate } from '../types/dates'; function pad(number: number) { @@ -28,7 +27,7 @@ function pad(number: number) { } export function parseDate(rawDate: ParsableDate): Date { - return parse(rawDate); + return new Date(rawDate); } export function toShortNotSoISOString(rawDate: ParsableDate): string { diff --git a/server/sonar-web/yarn.lock b/server/sonar-web/yarn.lock index 6b461cd75bb..94d62542c2f 100644 --- a/server/sonar-web/yarn.lock +++ b/server/sonar-web/yarn.lock @@ -2346,7 +2346,7 @@ __metadata: d3-selection: 1.4.1 d3-shape: 1.3.7 d3-zoom: 1.8.3 - date-fns: 1.30.1 + date-fns: 2.29.2 dompurify: 2.3.10 enzyme: 3.11.0 enzyme-adapter-react-16: 1.15.6 @@ -3818,10 +3818,10 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:1.30.1": - version: 1.30.1 - resolution: "date-fns@npm:1.30.1" - checksum: 86b1f3269cbb1f3ee5ac9959775ea6600436f4ee2b78430cd427b41a0c9fabf740b1a5d401c085f3003539a6f4755c7c56c19fbd70ce11f6f673f6bc8075b710 +"date-fns@npm:2.29.2": + version: 2.29.2 + resolution: "date-fns@npm:2.29.2" + checksum: 08bebcceb0a5dbadae4c55e6592b9d5c07dbd7833433c7e9a1d4a424300db32589b8b48e5979b32863c9b00a48d9bab6663e580c2a4f9f203d46cbf9113b5664 languageName: node linkType: hard -- 2.39.5