Skip to content

Commit 77eb915

Browse files
Merge branch 'feat/passkey-management-components' into feat/passkey-internal-docs
2 parents 186dd3e + 619d376 commit 77eb915

5 files changed

Lines changed: 19 additions & 31 deletions

File tree

packages/core/src/i18n/custom-messages/my-account/passkey/passkey-types.ts

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,6 @@
44
* @internal
55
*/
66

7-
/**
8-
* Interface for passkey messages that can be used in the UI.
9-
*/
10-
export interface PasskeyRenameModalMessages {
11-
title?: string;
12-
label?: string;
13-
placeholder?: string;
14-
cancel?: string;
15-
update?: string;
16-
}
17-
187
export interface PasskeyRevokeModalMessages {
198
title?: string;
209
consent?: string;
@@ -29,21 +18,19 @@ export interface PasskeyMessages {
2918
};
3019
section_title?: string;
3120
enabled?: string;
21+
passkey_name?: string;
3222
created_at?: string;
3323
last_used?: string;
3424
no_passkeys?: string;
3525
add_passkey?: string;
3626
actions?: {
37-
rename?: string;
3827
revoke?: string;
3928
};
4029
success?: {
4130
add?: string;
42-
rename?: string;
4331
revoke?: string;
4432
};
4533
modals?: {
46-
rename?: PasskeyRenameModalMessages;
4734
revoke?: PasskeyRevokeModalMessages;
4835
};
4936
}

packages/core/src/i18n/translations/en-US.json

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,29 +1195,21 @@
11951195
"title": "Log-in methods",
11961196
"description": "Ways you can sign in to your account. You can use one of these or combine them for flexibility."
11971197
},
1198-
"section_title": "Passkey",
1198+
"section_title": "Passkeys",
11991199
"enabled": "enabled",
12001200
"created_at": "Created on ${date}",
12011201
"last_used": "Last used ${date}",
1202+
"passkey_name": "Passkey ${index}",
12021203
"no_passkeys": "No passkeys have been added to your account.",
12031204
"add_passkey": "Add passkey",
12041205
"actions": {
1205-
"rename": "Rename",
12061206
"revoke": "Revoke"
12071207
},
12081208
"success": {
12091209
"add": "Passkey added successfully.",
1210-
"rename": "Passkey renamed successfully.",
12111210
"revoke": "Passkey revoked successfully."
12121211
},
12131212
"modals": {
1214-
"rename": {
1215-
"title": "Rename passkey",
1216-
"label": "Passkey name",
1217-
"placeholder": "Enter passkey name",
1218-
"cancel": "Cancel",
1219-
"update": "Update Passkey"
1220-
},
12211213
"revoke": {
12221214
"title": "Revoke passkey",
12231215
"consent": "This will revoke the passkey - <bold>${name}</bold> from your account.",

packages/react/src/components/auth0/my-account/__tests__/user-passkey-management.test.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ describe('UserPasskeyMgmt', () => {
5656
],
5757
});
5858
renderWithProviders(<UserPasskeyMgmt />);
59-
await screen.findByText('Passkey 1');
59+
await screen.findByText('passkey_name');
6060
expect(screen.getByText('enabled')).toBeInTheDocument();
6161
});
6262

@@ -91,7 +91,7 @@ describe('UserPasskeyMgmt', () => {
9191
});
9292

9393
const openRevokeModal = async (user: ReturnType<typeof userEvent.setup>) => {
94-
await user.click(await screen.findByRole('button', { name: 'Passkey 1' }));
94+
await user.click(await screen.findByRole('button', { name: 'passkey_name' }));
9595
await user.click(await screen.findByRole('menuitem', { name: /actions\.revoke/i }));
9696
};
9797

@@ -132,8 +132,8 @@ describe('UserPasskeyMgmt', () => {
132132

133133
it('hides revoke dropdown when revokeAction.disabled is true', async () => {
134134
renderWithProviders(<UserPasskeyMgmt revokeAction={{ disabled: true }} />);
135-
await screen.findByText('Passkey 1');
136-
expect(screen.queryByRole('button', { name: 'Passkey 1' })).not.toBeInTheDocument();
135+
await screen.findByText('passkey_name');
136+
expect(screen.queryByRole('button', { name: 'passkey_name' })).not.toBeInTheDocument();
137137
});
138138
});
139139
});

packages/react/src/hooks/my-account/shared/services/__tests__/use-user-passkey-service.test.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ import { describe, it, expect, vi, beforeEach } from 'vitest';
44

55
import { useUserPasskeyService } from '@/hooks/my-account/shared/services/use-user-passkey-service';
66
import * as useCoreClientModule from '@/hooks/shared/use-core-client';
7-
import { mockCore, setupMockUseCoreClient, createQueryClientWrapper } from '@/tests/utils';
7+
import * as useTranslatorModule from '@/hooks/shared/use-translator';
8+
import {
9+
mockCore,
10+
setupMockUseCoreClient,
11+
setupMockUseTranslator,
12+
createQueryClientWrapper,
13+
} from '@/tests/utils';
814

915
vi.mock('@auth0/universal-components-core', async (importOriginal) => {
1016
const actual = await importOriginal();
@@ -43,6 +49,7 @@ describe('useUserPasskeyService', () => {
4349
mockCoreClient = initMockCoreClient();
4450
apiClient = mockCoreClient.getMyAccountApiClient();
4551
setupMockUseCoreClient(mockCoreClient, useCoreClientModule);
52+
setupMockUseTranslator(useTranslatorModule);
4653
});
4754

4855
describe('passkeysQuery', () => {
@@ -62,7 +69,7 @@ describe('useUserPasskeyService', () => {
6269
const { result } = await renderAndWait();
6370

6471
expect(result.current.passkeysQuery.data).toEqual([
65-
expect.objectContaining({ id: 'pk-1', name: 'Passkey 1', createdAt: '2024-01-01' }),
72+
expect.objectContaining({ id: 'pk-1', name: 'passkey_name', createdAt: '2024-01-01' }),
6673
]);
6774
});
6875

packages/react/src/hooks/my-account/shared/services/use-user-passkey-service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
1010

1111
import { useCoreClient } from '@/hooks/shared/use-core-client';
12+
import { useTranslator } from '@/hooks/shared/use-translator';
1213
import type {
1314
Passkey,
1415
UseUserPasskeyServiceResult,
@@ -22,6 +23,7 @@ import type {
2223
export function useUserPasskeyService(): UseUserPasskeyServiceResult {
2324
const { coreClient } = useCoreClient();
2425
const queryClient = useQueryClient();
26+
const { t } = useTranslator('passkey');
2527

2628
const passkeysQuery = useQuery<Passkey[]>({
2729
queryKey: passkeyQueryKeys.list(),
@@ -34,7 +36,7 @@ export function useUserPasskeyService(): UseUserPasskeyServiceResult {
3436
const passkey = m as PasskeyAuthMethodResponse;
3537
return {
3638
id: passkey.id,
37-
name: `Passkey ${index + 1}`,
39+
name: t('passkey_name', { index: index + 1 }),
3840
createdAt: passkey.created_at,
3941
lastUsedAt: passkey.last_auth_at,
4042
deviceInfo: parseUserAgent(passkey.user_agent),

0 commit comments

Comments
 (0)