diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts
index 6018ea3eb8..8969583d35 100644
--- a/apps/client/src/app/components/admin-users/admin-users.component.ts
+++ b/apps/client/src/app/components/admin-users/admin-users.component.ts
@@ -5,12 +5,8 @@ import {
import { GfUserDetailDialogComponent } from '@ghostfolio/client/components/user-detail-dialog/user-detail-dialog.component';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
-import { formatDistanceToNow } from '@ghostfolio/client/util/date.util';
-import {
- DEFAULT_LANGUAGE_CODE,
- DEFAULT_LOCALE,
- DEFAULT_PAGE_SIZE
-} from '@ghostfolio/common/config';
+import { formatRelativeTime } from '@ghostfolio/client/util/date.util';
+import { DEFAULT_LOCALE, DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import {
canDeleteUser,
@@ -92,7 +88,7 @@ export class GfAdminUsersComponent implements OnInit {
protected defaultDateFormat: string;
protected displayedColumns: string[] = [];
protected readonly canDeleteUser = canDeleteUser;
- protected readonly formatDistanceToNow = formatDistanceToNow;
+ protected readonly formatRelativeTime = formatRelativeTime;
protected readonly getCountryName = getCountryName;
protected readonly getEmojiFlag = getEmojiFlag;
protected hasPermissionForSubscription: boolean;
@@ -316,7 +312,7 @@ export class GfAdminUsersComponent implements OnInit {
currentUserId: this.user?.id,
deviceType: this.deviceType(),
hasPermissionForSubscription: this.hasPermissionForSubscription,
- language: this.user?.settings?.language ?? DEFAULT_LANGUAGE_CODE,
+ language: this.user?.settings?.language,
locale: this.user?.settings?.locale ?? DEFAULT_LOCALE,
userId: aUserId
} satisfies UserDetailDialogParams,
diff --git a/apps/client/src/app/components/admin-users/admin-users.html b/apps/client/src/app/components/admin-users/admin-users.html
index 33e6a8593e..e0ec70c551 100644
--- a/apps/client/src/app/components/admin-users/admin-users.html
+++ b/apps/client/src/app/components/admin-users/admin-users.html
@@ -32,7 +32,7 @@
class="ml-1"
i18n-title
title="Expires {{
- formatDistanceToNow({
+ formatRelativeTime({
date: element.subscription.expiresAt,
language: user?.settings?.language
})
@@ -83,7 +83,7 @@
mat-cell
>
{{
- formatDistanceToNow({
+ formatRelativeTime({
date: element.createdAt,
language: user?.settings?.language
})
@@ -183,10 +183,9 @@
{{
- formatDistanceToNow({
+ formatRelativeTime({
date: element.lastActivity,
language: user?.settings?.language
})
diff --git a/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts
index 102a6ca837..2b2f85fbde 100644
--- a/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts
+++ b/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts
@@ -2,7 +2,7 @@ export interface UserDetailDialogParams {
currentUserId: string;
deviceType: string;
hasPermissionForSubscription: boolean;
- language: string;
+ language?: string;
locale: string;
userId: string;
}
diff --git a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
index 93109de8f2..db8c94abcd 100644
--- a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
+++ b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
@@ -1,4 +1,4 @@
-import { formatDistanceToNow } from '@ghostfolio/client/util/date.util';
+import { formatRelativeTime } from '@ghostfolio/client/util/date.util';
import {
canDeleteUser,
getCountryName,
@@ -56,7 +56,7 @@ import {
export class GfUserDetailDialogComponent implements OnInit {
protected readonly baseCurrency: string;
protected readonly canDeleteUser = canDeleteUser;
- protected readonly formatDistanceToNow = formatDistanceToNow;
+ protected readonly formatRelativeTime = formatRelativeTime;
protected readonly getCountryName = getCountryName;
protected isLoading = true;
diff --git a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
index 560a1f189c..c54318f856 100644
--- a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+++ b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
@@ -161,12 +161,10 @@
size="medium"
[isLoading]="isLoading"
[value]="
- user?.lastActivity
- ? formatDistanceToNow({
- date: user.lastActivity,
- language: data.language
- })
- : '-'
+ formatRelativeTime({
+ date: user?.lastActivity,
+ language: data.language
+ }) || '-'
"
>Last Request
diff --git a/apps/client/src/app/util/date.util.ts b/apps/client/src/app/util/date.util.ts
index 5d403cf9e2..a7dd0afd8c 100644
--- a/apps/client/src/app/util/date.util.ts
+++ b/apps/client/src/app/util/date.util.ts
@@ -6,7 +6,7 @@ import {
parseISO
} from 'date-fns';
-export function formatDistanceToNow({
+export function formatRelativeTime({
date,
language
}: {
|