feat: Add popular content per locale (#14939)

This commit is contained in:
Sivin Varghese
2026-07-17 14:43:42 +05:30
committed by GitHub
parent 5af26e45a9
commit 331875cdaa
29 changed files with 1208 additions and 33 deletions
@@ -166,6 +166,13 @@ export const LOCALE_MENU_ITEMS = {
value: 'customize-content',
icon: 'i-lucide-pencil',
},
selectPopularContent: {
label:
'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.SELECT_POPULAR_CONTENT',
action: 'select-popular-content',
value: 'select-popular-content',
icon: 'i-lucide-sparkles',
},
delete: {
label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.DELETE',
action: 'delete',
@@ -185,6 +192,7 @@ export const buildLocaleMenuItems = ({ isDefault, isDraft }) => {
LOCALE_MENU_ITEMS.moveToDraft,
]),
LOCALE_MENU_ITEMS.customizeContent,
LOCALE_MENU_ITEMS.selectPopularContent,
...disableLocaleMenuItems([LOCALE_MENU_ITEMS.delete]),
];
}
@@ -193,6 +201,7 @@ export const buildLocaleMenuItems = ({ isDefault, isDraft }) => {
return [
LOCALE_MENU_ITEMS.publishLocale,
LOCALE_MENU_ITEMS.customizeContent,
LOCALE_MENU_ITEMS.selectPopularContent,
LOCALE_MENU_ITEMS.delete,
];
}
@@ -201,6 +210,7 @@ export const buildLocaleMenuItems = ({ isDefault, isDraft }) => {
LOCALE_MENU_ITEMS.makeDefault,
LOCALE_MENU_ITEMS.moveToDraft,
LOCALE_MENU_ITEMS.customizeContent,
LOCALE_MENU_ITEMS.selectPopularContent,
LOCALE_MENU_ITEMS.delete,
];
};
@@ -74,26 +74,34 @@ describe('PortalHelper', () => {
});
describe('buildLocaleMenuItems', () => {
it('disables other actions but keeps customize enabled for the default locale', () => {
it('disables other actions but keeps content actions enabled for the default locale', () => {
const items = buildLocaleMenuItems({ isDefault: true, isDraft: false });
const customize = items.find(item => item.action === 'customize-content');
const enabledActions = ['customize-content', 'select-popular-content'];
expect(customize).toBeTruthy();
expect(customize.disabled).toBeFalsy();
enabledActions.forEach(action => {
expect(
items.find(item => item.action === action)?.disabled
).toBeFalsy();
});
expect(
items
.filter(item => item.action !== 'customize-content')
.filter(item => !enabledActions.includes(item.action))
.every(item => item.disabled)
).toBe(true);
});
it('returns publish, customize, and delete actions for draft locales', () => {
it('returns publish, customize, popular content, and delete actions for draft locales', () => {
expect(
buildLocaleMenuItems({
isDefault: false,
isDraft: true,
}).map(({ action }) => action)
).toEqual(['publish-locale', 'customize-content', 'delete']);
).toEqual([
'publish-locale',
'customize-content',
'select-popular-content',
'delete',
]);
});
it('returns default, draft, customize, and delete actions for live locales', () => {
@@ -106,6 +114,7 @@ describe('PortalHelper', () => {
'change-default',
'move-to-draft',
'customize-content',
'select-popular-content',
'delete',
]);
});