From f26eafd26ffa926d851d333d920a47268a4d2d39 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Fri, 29 Dec 2023 11:31:31 +0100 Subject: [PATCH] :globe_with_meridians: Improve i18n collaboration type and timeSince parsing --- apps/builder/src/components/TimeSince.tsx | 46 ++++++++++++ .../account/components/ApiTokensList.tsx | 6 +- .../components/CollaborationList.tsx | 70 +++++++------------ .../components/CollaboratorButton.tsx | 16 +++-- .../components/ReadableCollaborationType.tsx | 14 ++++ .../publish/components/PublishButton.tsx | 19 ++--- .../useTimeSince.ts} | 8 ++- apps/builder/src/i18n/en.json | 3 +- 8 files changed, 116 insertions(+), 66 deletions(-) create mode 100644 apps/builder/src/components/TimeSince.tsx create mode 100644 apps/builder/src/features/collaboration/components/ReadableCollaborationType.tsx rename apps/builder/src/{helpers/parseTimeSince.ts => hooks/useTimeSince.ts} (84%) diff --git a/apps/builder/src/components/TimeSince.tsx b/apps/builder/src/components/TimeSince.tsx new file mode 100644 index 000000000..4dc614dea --- /dev/null +++ b/apps/builder/src/components/TimeSince.tsx @@ -0,0 +1,46 @@ +import { T } from '@tolgee/react' + +type Props = { + date: string +} + +export const TimeSince = ({ date }: Props) => { + const seconds = Math.floor( + (new Date().getTime() - new Date(date).getTime()) / 1000 + ) + + let interval = seconds / 31536000 + + if (interval > 1) { + return ( + + ) + } + interval = seconds / 2592000 + if (interval > 1) { + return ( + + ) + } + interval = seconds / 86400 + if (interval > 1) { + return ( + + ) + } + interval = seconds / 3600 + if (interval > 1) { + return ( + + ) + } + interval = seconds / 60 + if (interval > 1) { + return ( + + ) + } + return ( + + ) +} diff --git a/apps/builder/src/features/account/components/ApiTokensList.tsx b/apps/builder/src/features/account/components/ApiTokensList.tsx index bf1ca01e1..2ee74794b 100644 --- a/apps/builder/src/features/account/components/ApiTokensList.tsx +++ b/apps/builder/src/features/account/components/ApiTokensList.tsx @@ -23,9 +23,9 @@ import { byId, isDefined } from '@typebot.io/lib' import { CreateTokenModal } from './CreateTokenModal' import { useApiTokens } from '../hooks/useApiTokens' import { ApiTokenFromServer } from '../types' -import { parseTimeSince } from '@/helpers/parseTimeSince' import { deleteApiTokenQuery } from '../queries/deleteApiTokenQuery' import { T, useTranslate } from '@tolgee/react' +import { TimeSince } from '@/components/TimeSince' type Props = { user: User } @@ -84,7 +84,9 @@ export const ApiTokensList = ({ user }: Props) => { {apiTokens?.map((token) => ( {token.name} - {parseTimeSince(t, token.createdAt)} + + +