From a4f8199e92e7287487acc7da97267dcfd5e1e70d Mon Sep 17 00:00:00 2001 From: Charles Zhao Date: Tue, 2 Apr 2024 18:12:08 +0800 Subject: [PATCH] fix(console,phrases): fix a batch of organization invitation console ui issues (#5614) --- packages/console/src/assets/icons/invitation.svg | 2 +- .../cloud/pages/Main/InvitationList/index.module.scss | 10 ++-------- .../src/cloud/pages/Main/InvitationList/index.tsx | 5 +++-- .../src/components/ItemPreview/index.module.scss | 5 ++++- packages/console/src/components/ItemPreview/index.tsx | 2 +- .../Topbar/TenantSelector/index.module.scss | 9 ++++++--- .../src/components/Topbar/TenantSelector/index.tsx | 3 ++- .../AcceptInvitation/SwitchAccount/index.module.scss | 4 ++-- .../pages/AcceptInvitation/SwitchAccount/index.tsx | 7 ++++++- packages/console/src/pages/AcceptInvitation/index.tsx | 8 ++++++-- .../TenantMembers/InviteMemberModal/index.tsx | 9 ++++++++- packages/console/src/pages/TenantSettings/index.tsx | 10 +++++----- .../src/tests/console/applications/index.test.ts | 6 +++--- .../console/rbac/machime-to-machime-rbac.test.ts | 9 +++++---- .../src/tests/console/rbac/user-rbac.test.ts | 11 ++++++----- .../sign-up-and-sign-in/connector-setup-helpers.ts | 6 +++--- .../de/translation/admin-console/invitation.ts | 4 +++- .../en/translation/admin-console/invitation.ts | 3 ++- .../es/translation/admin-console/invitation.ts | 4 +++- .../fr/translation/admin-console/invitation.ts | 4 +++- .../it/translation/admin-console/invitation.ts | 4 +++- .../ja/translation/admin-console/invitation.ts | 4 +++- .../ko/translation/admin-console/invitation.ts | 4 +++- .../pl-pl/translation/admin-console/invitation.ts | 4 +++- .../pt-br/translation/admin-console/invitation.ts | 4 +++- .../pt-pt/translation/admin-console/invitation.ts | 4 +++- .../ru/translation/admin-console/invitation.ts | 4 +++- .../tr-tr/translation/admin-console/invitation.ts | 4 +++- .../zh-cn/translation/admin-console/invitation.ts | 4 +++- .../zh-hk/translation/admin-console/invitation.ts | 4 +++- .../zh-tw/translation/admin-console/invitation.ts | 4 +++- 31 files changed, 107 insertions(+), 58 deletions(-) diff --git a/packages/console/src/assets/icons/invitation.svg b/packages/console/src/assets/icons/invitation.svg index 7ee865385..2c245c59f 100644 --- a/packages/console/src/assets/icons/invitation.svg +++ b/packages/console/src/assets/icons/invitation.svg @@ -1,3 +1,3 @@ - + diff --git a/packages/console/src/cloud/pages/Main/InvitationList/index.module.scss b/packages/console/src/cloud/pages/Main/InvitationList/index.module.scss index e4ecad534..3f223613f 100644 --- a/packages/console/src/cloud/pages/Main/InvitationList/index.module.scss +++ b/packages/console/src/cloud/pages/Main/InvitationList/index.module.scss @@ -5,7 +5,7 @@ flex-direction: column; height: 100%; min-height: 600px; - background: var(--color-surface-1); + background: var(--color-base); align-items: center; justify-content: center; overflow-y: auto; @@ -16,17 +16,11 @@ width: 540px; padding: _.unit(20) _.unit(17.5); gap: _.unit(6); - background: var(--color-bg-float); + background: var(--color-layer-1); border-radius: 16px; box-shadow: var(--shadow-1); white-space: pre-wrap; - .icon { - width: 40px; - height: 40px; - flex-shrink: 0; - } - .title { font: var(--font-headline-2); } diff --git a/packages/console/src/cloud/pages/Main/InvitationList/index.tsx b/packages/console/src/cloud/pages/Main/InvitationList/index.tsx index 1b96bb641..6f5c71881 100644 --- a/packages/console/src/cloud/pages/Main/InvitationList/index.tsx +++ b/packages/console/src/cloud/pages/Main/InvitationList/index.tsx @@ -2,11 +2,12 @@ import { OrganizationInvitationStatus, getTenantIdFromOrganizationId } from '@lo import { useContext, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import Icon from '@/assets/icons/organization-preview.svg'; +import OrganizationIcon from '@/assets/icons/organization-preview.svg'; import { useCloudApi } from '@/cloud/hooks/use-cloud-api'; import { type TenantResponse, type InvitationListResponse } from '@/cloud/types/router'; import CreateTenantModal from '@/components/CreateTenantModal'; import TenantEnvTag from '@/components/TenantEnvTag'; +import ThemedIcon from '@/components/ThemedIcon'; import { TenantsContext } from '@/contexts/TenantsProvider'; import Button from '@/ds-components/Button'; import Spacer from '@/ds-components/Spacer'; @@ -32,7 +33,7 @@ function InvitationList({ invitations }: Props) {
{t('invitation.find_tenants_description')}
{invitations.map(({ id, organizationId, tenantName, tenantTag }) => (
- + {tenantName} diff --git a/packages/console/src/components/ItemPreview/index.module.scss b/packages/console/src/components/ItemPreview/index.module.scss index 3a09bf4d6..ee9ce986c 100644 --- a/packages/console/src/components/ItemPreview/index.module.scss +++ b/packages/console/src/components/ItemPreview/index.module.scss @@ -31,9 +31,12 @@ .title { display: block; font: var(--font-body-2); - color: var(--color-text-link); text-decoration: none; @include _.text-ellipsis; + + &.withLink { + color: var(--color-text-link); + } } .subtitle { diff --git a/packages/console/src/components/ItemPreview/index.tsx b/packages/console/src/components/ItemPreview/index.tsx index 5e6d4544f..ae29ac656 100644 --- a/packages/console/src/components/ItemPreview/index.tsx +++ b/packages/console/src/components/ItemPreview/index.tsx @@ -27,7 +27,7 @@ function ItemPreview({ title, subtitle, icon, to, size = 'default', suffix, toTa
{to && ( { diff --git a/packages/console/src/components/Topbar/TenantSelector/index.module.scss b/packages/console/src/components/Topbar/TenantSelector/index.module.scss index f06ff2128..8697a8b95 100644 --- a/packages/console/src/components/Topbar/TenantSelector/index.module.scss +++ b/packages/console/src/components/Topbar/TenantSelector/index.module.scss @@ -19,6 +19,7 @@ $dropdown-item-height: 40px; position: relative; border: none; background-color: transparent; + gap: _.unit(2); &:hover { cursor: pointer; @@ -31,12 +32,14 @@ $dropdown-item-height: 40px; .name { font: var(--font-title-2); - margin-right: _.unit(1.5); @include _.text-ellipsis; } - .tag { - margin-right: _.unit(2); + .redDot { + width: 10px; + height: 10px; + border-radius: 50%; + background-color: var(--color-on-error-container); } .arrowIcon { diff --git a/packages/console/src/components/Topbar/TenantSelector/index.tsx b/packages/console/src/components/Topbar/TenantSelector/index.tsx index 99e4eee98..07555f0ef 100644 --- a/packages/console/src/components/Topbar/TenantSelector/index.tsx +++ b/packages/console/src/components/Topbar/TenantSelector/index.tsx @@ -54,7 +54,8 @@ export default function TenantSelector() { }} >
{currentTenantInfo.name}
- + + {Boolean(pendingInvitations?.length) &&
}
; + } + return (
diff --git a/packages/console/src/pages/AcceptInvitation/index.tsx b/packages/console/src/pages/AcceptInvitation/index.tsx index 849bf9edb..6c804241b 100644 --- a/packages/console/src/pages/AcceptInvitation/index.tsx +++ b/packages/console/src/pages/AcceptInvitation/index.tsx @@ -47,10 +47,10 @@ function AcceptInvitation() { resetTenants(data); navigateTenant(getTenantIdFromOrganizationId(organizationId)); })(); - }, [cloudApi, error, invitation, navigateTenant, t]); + }, [cloudApi, error, invitation, navigateTenant, resetTenants, t]); // No invitation returned, indicating the current signed-in user is not the invitee. - if (error?.status === 404) { + if (error?.status === 403) { return ( { @@ -63,6 +63,10 @@ function AcceptInvitation() { ); } + if (error?.status === 404) { + return ; + } + if (invitation && invitation.status !== OrganizationInvitationStatus.Pending) { return ; } diff --git a/packages/console/src/pages/TenantSettings/TenantMembers/InviteMemberModal/index.tsx b/packages/console/src/pages/TenantSettings/TenantMembers/InviteMemberModal/index.tsx index 1f679905d..4bbec877e 100644 --- a/packages/console/src/pages/TenantSettings/TenantMembers/InviteMemberModal/index.tsx +++ b/packages/console/src/pages/TenantSettings/TenantMembers/InviteMemberModal/index.tsx @@ -1,5 +1,5 @@ import { ReservedPlanId, TenantRole } from '@logto/schemas'; -import { useContext, useMemo, useState } from 'react'; +import { useContext, useEffect, useMemo, useState } from 'react'; import { Controller, FormProvider, useForm } from 'react-hook-form'; import { toast } from 'react-hot-toast'; import { useTranslation } from 'react-i18next'; @@ -50,9 +50,16 @@ function InviteMemberModal({ isOpen, onClose }: Props) { control, handleSubmit, setError, + reset, formState: { errors }, } = formMethods; + useEffect(() => { + return () => { + reset(); + }; + }, [isOpen, reset]); + const roleOptions: Array> = useMemo( () => [ { value: TenantRole.Admin, title: t('admin') }, diff --git a/packages/console/src/pages/TenantSettings/index.tsx b/packages/console/src/pages/TenantSettings/index.tsx index a1a459a78..6b59a3fb7 100644 --- a/packages/console/src/pages/TenantSettings/index.tsx +++ b/packages/console/src/pages/TenantSettings/index.tsx @@ -26,16 +26,16 @@ function TenantSettings() { - {isDevFeaturesEnabled && ( - - - - )} {canManageTenant && ( )} + {isDevFeaturesEnabled && ( + + + + )} {!isDevTenant && canManageTenant && ( <> diff --git a/packages/integration-tests/src/tests/console/applications/index.test.ts b/packages/integration-tests/src/tests/console/applications/index.test.ts index c2166cf6d..6855427e6 100644 --- a/packages/integration-tests/src/tests/console/applications/index.test.ts +++ b/packages/integration-tests/src/tests/console/applications/index.test.ts @@ -13,7 +13,7 @@ import { goToAdminConsole, waitForToast, } from '#src/ui-helpers/index.js'; -import { expectNavigation, appendPathname, dcls, waitFor } from '#src/utils.js'; +import { expectNavigation, appendPathname, dcls, waitFor, cls } from '#src/utils.js'; import { type ApplicationMetadata, @@ -85,7 +85,7 @@ describe('applications', () => { */ await page.reload(); - await expect(page).toMatchElement('table div[class$=item] a[class$=title]', { + await expect(page).toMatchElement(`table div[class$=item] a${cls('title')}`, { text: initialApp.name, }); }); @@ -345,7 +345,7 @@ describe('applications', () => { }); it('delete the initial application', async () => { - await expect(page).toClick('table tbody tr td div[class$=item] a[class$=title]', { + await expect(page).toClick(`table tbody tr td div[class$=item] a${cls('title')}`, { text: initialApp.name, }); diff --git a/packages/integration-tests/src/tests/console/rbac/machime-to-machime-rbac.test.ts b/packages/integration-tests/src/tests/console/rbac/machime-to-machime-rbac.test.ts index c1990378f..e46fc0963 100644 --- a/packages/integration-tests/src/tests/console/rbac/machime-to-machime-rbac.test.ts +++ b/packages/integration-tests/src/tests/console/rbac/machime-to-machime-rbac.test.ts @@ -14,6 +14,7 @@ import { generateScopeName, generateRoleName, dcls, + cls, } from '#src/utils.js'; import { @@ -183,7 +184,7 @@ describe('M2M RBAC', () => { await expect(page).toFill('div[class$=filter] input', roleName); await expect(page).toClick('button', { text: 'Search' }); - await expect(page).toClick('table tbody tr td div[class$=meta]:has(a[class$=title])', { + await expect(page).toClick(`table tbody tr td div[class$=meta]:has(a${cls('title')})`, { text: roleName, }); }); @@ -272,7 +273,7 @@ describe('M2M RBAC', () => { }); await expect(page).toMatchElement( - 'div[class$=applicationsTable] td div[class$=item] a[class$=title]', + [dcls('applicationsTable'), 'td', dcls('item'), `a${cls('title')}`].join(' '), { text: rbacTestAppname, } @@ -302,7 +303,7 @@ describe('M2M RBAC', () => { page.goto(appendPathname('/console/applications', logtoConsoleUrl).href) ); - await expect(page).toClick('table tbody tr td a[class$=title]', { + await expect(page).toClick(['table', 'tbody', 'tr', 'td', `a${cls('title')}`].join(' '), { text: rbacTestAppname, }); }); @@ -341,7 +342,7 @@ describe('M2M RBAC', () => { } ); - const roleRow = await expect(page).toMatchElement('table tbody tr:has(td a[class$=title])', { + const roleRow = await expect(page).toMatchElement(`table tbody tr:has(td a${cls('title')})`, { text: roleName, }); diff --git a/packages/integration-tests/src/tests/console/rbac/user-rbac.test.ts b/packages/integration-tests/src/tests/console/rbac/user-rbac.test.ts index 8aa45dc92..8c2e9eb38 100644 --- a/packages/integration-tests/src/tests/console/rbac/user-rbac.test.ts +++ b/packages/integration-tests/src/tests/console/rbac/user-rbac.test.ts @@ -15,6 +15,7 @@ import { generateResourceIndicator, generateScopeName, generateRoleName, + cls, } from '#src/utils.js'; import { expectToSelectPermissionAction } from './helper.js'; @@ -265,7 +266,7 @@ describe('User RBAC', () => { }); await expect(page).toMatchElement( - 'div[class$=usersTable] td div[class$=item] a[class$=title]', + `div[class$=usersTable] td div[class$=item] a${cls('title')}`, { text: rbacTestUsername, } @@ -274,7 +275,7 @@ describe('User RBAC', () => { it('remove a role form a user on the user details page', async () => { // Navigate to user details page - await expect(page).toClick('table tbody tr td a[class$=title]', { + await expect(page).toClick(`table tbody tr td a${cls('title')}`, { text: rbacTestUsername, }); @@ -287,7 +288,7 @@ describe('User RBAC', () => { text: 'Roles', }); - const roleRow = await expect(page).toMatchElement('table tbody tr:has(td a[class$=title])', { + const roleRow = await expect(page).toMatchElement(`table tbody tr:has(td a${cls('title')})`, { text: roleName, }); @@ -347,7 +348,7 @@ describe('User RBAC', () => { } ); - await expect(page).toClick('table tbody tr td a[class$=title]', { + await expect(page).toClick(['table', 'tbody', 'tr', 'td', `a${cls('title')}`].join(' '), { text: roleName, }); @@ -380,7 +381,7 @@ describe('User RBAC', () => { } ); - await expect(page).toClick('table tbody tr td a[class$=title]', { + await expect(page).toClick(['table', 'tbody', 'tr', 'td', `a${cls('title')}`].join(' '), { text: apiResourceName, }); diff --git a/packages/integration-tests/src/tests/console/sign-in-experience/sign-up-and-sign-in/connector-setup-helpers.ts b/packages/integration-tests/src/tests/console/sign-in-experience/sign-up-and-sign-in/connector-setup-helpers.ts index 26be69607..dc68ccfde 100644 --- a/packages/integration-tests/src/tests/console/sign-in-experience/sign-up-and-sign-in/connector-setup-helpers.ts +++ b/packages/integration-tests/src/tests/console/sign-in-experience/sign-up-and-sign-in/connector-setup-helpers.ts @@ -3,7 +3,7 @@ import { type Page } from 'puppeteer'; import { logtoConsoleUrl as logtoConsoleUrlString } from '#src/constants.js'; import { expectToClickDetailsPageOption, waitForToast } from '#src/ui-helpers/index.js'; -import { expectNavigation, appendPathname } from '#src/utils.js'; +import { expectNavigation, appendPathname, cls } from '#src/utils.js'; import { expectToConfirmConnectorDeletion, @@ -129,7 +129,7 @@ export const expectToDeletePasswordlessConnector = async (page: Page, { name }: page.goto(appendPathname('/console/connectors/passwordless', logtoConsoleUrl).href) ); - await expect(page).toClick('table tbody tr td div[class$=item] a[class$=title] span', { + await expect(page).toClick(`table tbody tr td div[class$=item] a${cls('title')} span`, { text: name, }); @@ -150,7 +150,7 @@ export const expectToDeleteSocialConnector = async (page: Page, { name }: TestCo page.goto(appendPathname('/console/connectors/social', logtoConsoleUrl).href) ); - await expect(page).toClick('table tbody tr td div[class$=item] a[class$=title] span', { + await expect(page).toClick(`table tbody tr td div[class$=item] a${cls('title')} span`, { text: name, }); diff --git a/packages/phrases/src/locales/de/translation/admin-console/invitation.ts b/packages/phrases/src/locales/de/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/de/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/de/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/en/translation/admin-console/invitation.ts b/packages/phrases/src/locales/en/translation/admin-console/invitation.ts index 2feeb7fe7..91eaa2d6e 100644 --- a/packages/phrases/src/locales/en/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/en/translation/admin-console/invitation.ts @@ -3,11 +3,12 @@ const invitation = { find_tenants_description: 'Your email address may already be registered with multiple tenants. You can choose to join the existing ones or continue create a new one.', create_new_tenant: 'Create a new tenant', - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', switch_account: 'Sign in to another account', invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/es/translation/admin-console/invitation.ts b/packages/phrases/src/locales/es/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/es/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/es/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/fr/translation/admin-console/invitation.ts b/packages/phrases/src/locales/fr/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/fr/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/fr/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/it/translation/admin-console/invitation.ts b/packages/phrases/src/locales/it/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/it/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/it/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/ja/translation/admin-console/invitation.ts b/packages/phrases/src/locales/ja/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/ja/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/ja/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/ko/translation/admin-console/invitation.ts b/packages/phrases/src/locales/ko/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/ko/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/ko/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/pl-pl/translation/admin-console/invitation.ts b/packages/phrases/src/locales/pl-pl/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/pl-pl/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/pl-pl/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/pt-br/translation/admin-console/invitation.ts b/packages/phrases/src/locales/pt-br/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/pt-br/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/pt-br/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/pt-pt/translation/admin-console/invitation.ts b/packages/phrases/src/locales/pt-pt/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/pt-pt/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/pt-pt/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/ru/translation/admin-console/invitation.ts b/packages/phrases/src/locales/ru/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/ru/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/ru/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/tr-tr/translation/admin-console/invitation.ts b/packages/phrases/src/locales/tr-tr/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/tr-tr/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/tr-tr/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/zh-cn/translation/admin-console/invitation.ts b/packages/phrases/src/locales/zh-cn/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/zh-cn/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/zh-cn/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/zh-hk/translation/admin-console/invitation.ts b/packages/phrases/src/locales/zh-hk/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/zh-hk/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/zh-hk/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation); diff --git a/packages/phrases/src/locales/zh-tw/translation/admin-console/invitation.ts b/packages/phrases/src/locales/zh-tw/translation/admin-console/invitation.ts index f512fd544..c158350e3 100644 --- a/packages/phrases/src/locales/zh-tw/translation/admin-console/invitation.ts +++ b/packages/phrases/src/locales/zh-tw/translation/admin-console/invitation.ts @@ -7,7 +7,7 @@ const invitation = { /** UNTRANSLATED */ create_new_tenant: 'Create a new tenant', /** UNTRANSLATED */ - email_not_match_title: 'You are currently signed in as\n{{email}}.', + email_not_match_title: 'You are currently signed in as\n{{email}}', /** UNTRANSLATED */ email_not_match_description: 'You do not currently have access to this organization.\nPlease sign in with the correct account to accept the invitation and become a member of the organization.', @@ -15,6 +15,8 @@ const invitation = { switch_account: 'Sign in to another account', /** UNTRANSLATED */ invalid_invitation_status: 'Invalid invitation. Please contact the administrator and try again.', + /** UNTRANSLATED */ + invitation_not_found: 'Invitation not found. Please contact the administrator.', }; export default Object.freeze(invitation);