feat: Improved Page and History names (#4908)
Improved page and history names. Closes #4684 --------- Co-authored-by: Marie Stoppa <marie.stoppa@essec.edu>
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import { getPageTitleFromPath } from '../title-utils';
|
||||
import { getPageTitleFromPath, SettingsPageTitles } from '../title-utils';
|
||||
|
||||
describe('title-utils', () => {
|
||||
it('should return the correct title for a given path', () => {
|
||||
@ -13,14 +13,39 @@ describe('title-utils', () => {
|
||||
expect(getPageTitleFromPath('/objects/opportunities')).toBe(
|
||||
'Opportunities',
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/profile')).toBe('Profile');
|
||||
expect(getPageTitleFromPath('/settings/profile/appearance')).toBe(
|
||||
'Appearance',
|
||||
expect(getPageTitleFromPath('/settings/objects/opportunities')).toBe(
|
||||
SettingsPageTitles.Objects,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/profile')).toBe(
|
||||
SettingsPageTitles.Profile,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/appearance')).toBe(
|
||||
SettingsPageTitles.Appearance,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/accounts')).toBe(
|
||||
SettingsPageTitles.Accounts,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/accounts/new')).toBe(
|
||||
SettingsPageTitles.Accounts,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/accounts/calendars')).toBe(
|
||||
SettingsPageTitles.Accounts,
|
||||
);
|
||||
expect(
|
||||
getPageTitleFromPath('/settings/accounts/calendars/:accountUuid'),
|
||||
).toBe(SettingsPageTitles.Accounts);
|
||||
expect(getPageTitleFromPath('/settings/accounts/emails')).toBe(
|
||||
SettingsPageTitles.Accounts,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/accounts/emails/:accountUuid')).toBe(
|
||||
SettingsPageTitles.Accounts,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/workspace-members')).toBe(
|
||||
'Workspace Members',
|
||||
SettingsPageTitles.Members,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/workspace')).toBe(
|
||||
SettingsPageTitles.General,
|
||||
);
|
||||
expect(getPageTitleFromPath('/settings/workspace')).toBe('Workspace');
|
||||
expect(getPageTitleFromPath('/')).toBe('Twenty');
|
||||
expect(getPageTitleFromPath('/random')).toBe('Twenty');
|
||||
});
|
||||
|
||||
@ -2,8 +2,41 @@ import { AppBasePath } from '@/types/AppBasePath';
|
||||
import { AppPath } from '@/types/AppPath';
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
|
||||
export enum SettingsPageTitles {
|
||||
Accounts = 'Account - Settings',
|
||||
Appearance = 'Appearance - Settings',
|
||||
Profile = 'Profile - Settings',
|
||||
Objects = 'Data model - Settings',
|
||||
Members = 'Members - Settings',
|
||||
Developers = 'Developers - Settings',
|
||||
Integration = 'Integrations - Settings',
|
||||
General = 'General - Settings',
|
||||
Default = 'Settings',
|
||||
}
|
||||
|
||||
enum SettingsPathPrefixes {
|
||||
Accounts = `${AppBasePath.Settings}/${SettingsPath.Accounts}`,
|
||||
Appearance = `${AppBasePath.Settings}/${SettingsPath.Appearance}`,
|
||||
Profile = `${AppBasePath.Settings}/${SettingsPath.ProfilePage}`,
|
||||
Objects = `${AppBasePath.Settings}/${SettingsPath.Objects}`,
|
||||
Members = `${AppBasePath.Settings}/${SettingsPath.WorkspaceMembersPage}`,
|
||||
Developers = `${AppBasePath.Settings}/${SettingsPath.Developers}`,
|
||||
Integration = `${AppBasePath.Settings}/${SettingsPath.Integrations}`,
|
||||
General = `${AppBasePath.Settings}/${SettingsPath.Workspace}`,
|
||||
}
|
||||
|
||||
const getPathnameOrPrefix = (pathname: string) => {
|
||||
for (const prefix of Object.values(SettingsPathPrefixes)) {
|
||||
if (pathname.startsWith(prefix)) {
|
||||
return prefix;
|
||||
}
|
||||
}
|
||||
return pathname;
|
||||
};
|
||||
|
||||
export const getPageTitleFromPath = (pathname: string): string => {
|
||||
switch (pathname) {
|
||||
const pathnameOrPrefix = getPathnameOrPrefix(pathname);
|
||||
switch (pathnameOrPrefix) {
|
||||
case AppPath.Verify:
|
||||
return 'Verify';
|
||||
case AppPath.SignInUp:
|
||||
@ -18,14 +51,22 @@ export const getPageTitleFromPath = (pathname: string): string => {
|
||||
return 'Tasks';
|
||||
case AppPath.OpportunitiesPage:
|
||||
return 'Opportunities';
|
||||
case `${AppBasePath.Settings}/${SettingsPath.ProfilePage}`:
|
||||
return 'Profile';
|
||||
case `${AppBasePath.Settings}/${SettingsPath.Appearance}`:
|
||||
return 'Appearance';
|
||||
case `${AppBasePath.Settings}/${SettingsPath.WorkspaceMembersPage}`:
|
||||
return 'Workspace Members';
|
||||
case `${AppBasePath.Settings}/${SettingsPath.Workspace}`:
|
||||
return 'Workspace';
|
||||
case SettingsPathPrefixes.Appearance:
|
||||
return SettingsPageTitles.Appearance;
|
||||
case SettingsPathPrefixes.Accounts:
|
||||
return SettingsPageTitles.Accounts;
|
||||
case SettingsPathPrefixes.Profile:
|
||||
return SettingsPageTitles.Profile;
|
||||
case SettingsPathPrefixes.Members:
|
||||
return SettingsPageTitles.Members;
|
||||
case SettingsPathPrefixes.Objects:
|
||||
return SettingsPageTitles.Objects;
|
||||
case SettingsPathPrefixes.Developers:
|
||||
return SettingsPageTitles.Developers;
|
||||
case SettingsPathPrefixes.Integration:
|
||||
return SettingsPageTitles.Integration;
|
||||
case SettingsPathPrefixes.General:
|
||||
return SettingsPageTitles.General;
|
||||
default:
|
||||
return 'Twenty';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user