Replace entire repo content with updated code from /root/shahikitchen-website/
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import type { Language } from '@/domain/language/entities';
|
||||
import type { MenuItem } from '@/domain/menu/entities';
|
||||
import type { OrderLine } from '@/domain/shared/order-line';
|
||||
import { getMenuItemById } from '@/infrastructure/menu/static-menu-data';
|
||||
import { getCategoryName as resolveCategoryName } from '@/presentation/i18n/menu/category-names';
|
||||
import { getMenuItemName as resolveItemName } from '@/presentation/i18n/menu/item-names';
|
||||
import type { TranslationBundle } from '@/presentation/i18n/translations';
|
||||
|
||||
type MenuTextBundle = TranslationBundle & {
|
||||
menuDescriptions?: Record<string, string>;
|
||||
};
|
||||
|
||||
export function getMenuItemName(
|
||||
lang: Language,
|
||||
item: Pick<MenuItem, 'id' | 'name'>,
|
||||
): string {
|
||||
return resolveItemName(lang, item.id, item.name);
|
||||
}
|
||||
|
||||
export function getMenuItemDescription(
|
||||
lang: Language,
|
||||
t: TranslationBundle,
|
||||
item: Pick<MenuItem, 'id' | 'description'>,
|
||||
): string {
|
||||
const bundle = t as MenuTextBundle;
|
||||
return (
|
||||
bundle.menuDescriptions?.[item.id] ??
|
||||
(lang === 'en' ? item.description : undefined) ??
|
||||
item.description ??
|
||||
''
|
||||
);
|
||||
}
|
||||
|
||||
export function getCategoryName(
|
||||
lang: Language,
|
||||
categoryId: string,
|
||||
fallback: string,
|
||||
): string {
|
||||
return resolveCategoryName(lang, categoryId, fallback);
|
||||
}
|
||||
|
||||
export function localizeMenuItem(
|
||||
lang: Language,
|
||||
t: TranslationBundle,
|
||||
item: MenuItem,
|
||||
): MenuItem {
|
||||
return {
|
||||
...item,
|
||||
name: getMenuItemName(lang, item),
|
||||
description: getMenuItemDescription(lang, t, item),
|
||||
};
|
||||
}
|
||||
|
||||
export function localizeOrderLineName(lang: Language, line: OrderLine): string {
|
||||
const menuItem = getMenuItemById(line.id);
|
||||
if (!menuItem) return line.name;
|
||||
return getMenuItemName(lang, menuItem);
|
||||
}
|
||||
Reference in New Issue
Block a user