From f3a916ec192b6b170d559a2755e09a671d8f1710 Mon Sep 17 00:00:00 2001 From: Tomas Kikutis Date: Tue, 21 Jan 2025 10:59:13 +0100 Subject: [PATCH] decouple datetime component from angular service (#4729) --- scripts/core/datetime/datetime.ts | 50 +++++++++++++------------ scripts/core/ui/components/DateTime.tsx | 7 ++-- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/scripts/core/datetime/datetime.ts b/scripts/core/datetime/datetime.ts index 91f4af2967..39555b7caf 100644 --- a/scripts/core/datetime/datetime.ts +++ b/scripts/core/datetime/datetime.ts @@ -137,32 +137,36 @@ export function scheduledFormat(__item: IArticle): {short: string, long: string} }; } +/** + * Get short representation of given datetime + * + * It returns time for current day, day + time for current week, date otherwise. + * + * @param {String} d iso format datetime + * @return {String} + */ +export function shortFormat(d) { + var m = moment(d); + var now = moment(); + + if (isSameDay(m, now)) { + return m.format(TIME_FORMAT); + } else if (isSameWeek(m, now)) { + return m.format(WEEK_FORMAT); + } else if (isArchiveYear(m, now)) { + return m.format(ARCHIVE_FORMAT); + } + + return m.format(DATE_FORMAT); +} + +export const longFormat = (date) => formatDate(date, {longFormat: true}); + DateTimeService.$inject = []; function DateTimeService() { - /** - * Get short representation of given datetime - * - * It returns time for current day, day + time for current week, date otherwise. - * - * @param {String} d iso format datetime - * @return {String} - */ - this.shortFormat = function(d) { - var m = moment(d); - var now = moment(); - - if (isSameDay(m, now)) { - return m.format(TIME_FORMAT); - } else if (isSameWeek(m, now)) { - return m.format(WEEK_FORMAT); - } else if (isArchiveYear(m, now)) { - return m.format(ARCHIVE_FORMAT); - } - - return m.format(DATE_FORMAT); - }; + this.shortFormat = shortFormat; - this.longFormat = (date) => formatDate(date, {longFormat: true}); + this.longFormat = longFormat; } DateTimeHelperService.$inject = []; diff --git a/scripts/core/ui/components/DateTime.tsx b/scripts/core/ui/components/DateTime.tsx index 3bbc5fb6ba..71fe67d242 100644 --- a/scripts/core/ui/components/DateTime.tsx +++ b/scripts/core/ui/components/DateTime.tsx @@ -1,14 +1,13 @@ import React from 'react'; -import ng from 'core/services/ng'; import {IPropsDateTime} from 'superdesk-api'; +import {longFormat, shortFormat} from 'core/datetime/datetime'; export class DateTime extends React.PureComponent { render() { - const datetimeService = ng.get('datetime'); const {dateTime} = this.props; - const dateShort = datetimeService.shortFormat(dateTime); - const dateLong = datetimeService.longFormat(dateTime); + const dateShort = shortFormat(dateTime); + const dateLong = longFormat(dateTime); const tooltip = this.props.tooltip == null ? dateLong : this.props.tooltip(dateLong, dateShort); return (