From c57a8d291844cbe63090e0d0573233ef855f70ad Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 6 Jul 2023 16:57:50 -0700 Subject: [PATCH 1/2] Show user's last activity --- src/lib/helpers/date.ts | 10 ++++++++++ .../console/project-[project]/auth/+page.svelte | 15 +++++++++++++-- .../auth/user-[user]/dangerZone.svelte | 5 +++++ .../auth/user-[user]/updateStatus.svelte | 6 +++++- tests/unit/helpers/date.test.ts | 8 ++++++++ 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/lib/helpers/date.ts b/src/lib/helpers/date.ts index 8558f315fa..68f9c31a75 100644 --- a/src/lib/helpers/date.ts +++ b/src/lib/helpers/date.ts @@ -1,5 +1,10 @@ export const toLocaleDate = (datetime: string) => { const date = new Date(datetime); + + if (isNaN(date.getTime())) { + return 'n/a'; + } + const options: Intl.DateTimeFormatOptions = { year: 'numeric', month: 'short', @@ -11,6 +16,11 @@ export const toLocaleDate = (datetime: string) => { export const toLocaleDateTime = (datetime: string | number) => { const date = new Date(datetime); + + if (isNaN(date.getTime())) { + return 'n/a'; + } + const options: Intl.DateTimeFormatOptions = { year: 'numeric', month: 'short', diff --git a/src/routes/console/project-[project]/auth/+page.svelte b/src/routes/console/project-[project]/auth/+page.svelte index 0063f7ea1f..830d437931 100644 --- a/src/routes/console/project-[project]/auth/+page.svelte +++ b/src/routes/console/project-[project]/auth/+page.svelte @@ -19,7 +19,7 @@ TableRowLink } from '$lib/elements/table'; import { Pill } from '$lib/elements'; - import { toLocaleDateTime } from '$lib/helpers/date'; + import { toLocaleDate, toLocaleDateTime } from '$lib/helpers/date'; import { Container } from '$lib/layout'; import { base } from '$app/paths'; import { goto } from '$app/navigation'; @@ -29,6 +29,13 @@ export let data: PageData; + // TODO: Remove this when the console SDK is updated + const users = data.users.users.map((user) => { + const labels: string[] = []; + const accessedAt = ''; + return { accessedAt, labels, ...user }; + }); + let showCreate = false; const projectId = $page.params.project; async function userCreated(event: CustomEvent>>) { @@ -50,9 +57,10 @@ Status ID Joined + Last Activity - {#each data.users.users as user} + {#each users as user} @@ -105,6 +113,9 @@ {toLocaleDateTime(user.registration)} + + {user.accessedAt ? toLocaleDate(user.accessedAt) : 'never'} + {/each} diff --git a/src/routes/console/project-[project]/auth/user-[user]/dangerZone.svelte b/src/routes/console/project-[project]/auth/user-[user]/dangerZone.svelte index 8fa2ff05d3..a04d1cfc06 100644 --- a/src/routes/console/project-[project]/auth/user-[user]/dangerZone.svelte +++ b/src/routes/console/project-[project]/auth/user-[user]/dangerZone.svelte @@ -1,10 +1,14 @@ @@ -42,6 +46,7 @@ ? [$user.email, $user.phone].join(',') : $user.email || $user.phone}

+

Last activity: {accessedAt ? toLocaleDate(accessedAt) : 'never'}

diff --git a/src/routes/console/project-[project]/auth/user-[user]/updateStatus.svelte b/src/routes/console/project-[project]/auth/user-[user]/updateStatus.svelte index 60a2189d18..80fe968c8b 100644 --- a/src/routes/console/project-[project]/auth/user-[user]/updateStatus.svelte +++ b/src/routes/console/project-[project]/auth/user-[user]/updateStatus.svelte @@ -5,7 +5,7 @@ import { Dependencies } from '$lib/constants'; import { Pill } from '$lib/elements'; import { Button } from '$lib/elements/forms'; - import { toLocaleDateTime } from '$lib/helpers/date'; + import { toLocaleDate, toLocaleDateTime } from '$lib/helpers/date'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { user } from './store'; @@ -71,6 +71,9 @@ trackError(error, Submit.UserUpdateStatus); } } + + // TODO: Remove this when the console SDK is updated + $: accessedAt = ($user as unknown as { accessedAt: string }).accessedAt; @@ -100,6 +103,7 @@

{$user.phone}

{/if}

Joined: {toLocaleDateTime($user.registration)}

+

Last activity: {accessedAt ? toLocaleDate(accessedAt) : 'never'}

{#if !$user.status} blocked diff --git a/tests/unit/helpers/date.test.ts b/tests/unit/helpers/date.test.ts index 16b5ff3f4d..fab13619a3 100644 --- a/tests/unit/helpers/date.test.ts +++ b/tests/unit/helpers/date.test.ts @@ -16,6 +16,10 @@ describe('local date', () => { expect(toLocaleDate(value)).toBe(expected); }); }); + + it('invalid date', () => { + expect(toLocaleDate('')).toBe('n/a'); + }); }); describe('local date time', () => { @@ -27,6 +31,10 @@ describe('local date time', () => { expect(toLocaleDateTime(value)).toBe(expected); }); }); + + it('invalid date', () => { + expect(toLocaleDateTime('')).toBe('n/a'); + }); }); describe('is same day', () => { From 28b4b9984737e94264b0a2d003b4cbc6164130ba Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Fri, 21 Jul 2023 13:42:55 -0700 Subject: [PATCH 2/2] Update API Key Last Accessed to omit time Since accessedAt is only updated once in the last 24 hours, showing the time can cause confusion. --- .../console/project-[project]/overview/keys/+page.svelte | 4 ++-- .../overview/keys/[key]/+page@project-[project].svelte | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/console/project-[project]/overview/keys/+page.svelte b/src/routes/console/project-[project]/overview/keys/+page.svelte index 714ccea79d..92cc162875 100644 --- a/src/routes/console/project-[project]/overview/keys/+page.svelte +++ b/src/routes/console/project-[project]/overview/keys/+page.svelte @@ -9,7 +9,7 @@ TableHeader, TableRowLink } from '$lib/elements/table'; - import { toLocaleDateTime } from '$lib/helpers/date'; + import { toLocaleDate, toLocaleDateTime } from '$lib/helpers/date'; import { wizard } from '$lib/stores/wizard'; import type { PageData } from './$types'; import Wizard from './wizard.svelte'; @@ -46,7 +46,7 @@ {key.name} - {key.accessedAt ? toLocaleDateTime(key.accessedAt) : 'never'} + {key.accessedAt ? toLocaleDate(key.accessedAt) : 'never'} {key.expire ? toLocaleDateTime(key.expire) : 'never'} diff --git a/src/routes/console/project-[project]/overview/keys/[key]/+page@project-[project].svelte b/src/routes/console/project-[project]/overview/keys/[key]/+page@project-[project].svelte index e82edaeb48..62d5631586 100644 --- a/src/routes/console/project-[project]/overview/keys/[key]/+page@project-[project].svelte +++ b/src/routes/console/project-[project]/overview/keys/[key]/+page@project-[project].svelte @@ -5,7 +5,7 @@ import { Dependencies } from '$lib/constants'; import { Button, Form, FormList, InputText } from '$lib/elements/forms'; import { symmetricDifference } from '$lib/helpers/array'; - import { toLocaleDateTime } from '$lib/helpers/date'; + import { toLocaleDate } from '$lib/helpers/date'; import { Container } from '$lib/layout'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; @@ -83,7 +83,7 @@ - {@const accessedAt = $key.accessedAt ? toLocaleDateTime($key.accessedAt) : 'never'} + {@const accessedAt = $key.accessedAt ? toLocaleDate($key.accessedAt) : 'never'}
{$key.name}