fix: get names from categories

This commit is contained in:
2026-08-25 11:44:36 +05:00
parent 6d770dc642
commit 96b8c00129
3 changed files with 17 additions and 15 deletions
+12 -10
View File
@@ -7,14 +7,16 @@ export type CategoryId =
| 'generate'
| 'filters';
export type Category = { id: CategoryId; label: string };
export const CATEGORIES: Category[] = [
{ id: 'convert', label: 'Конвертация' },
{ id: 'alpha', label: 'Прозрачность' },
{ id: 'color', label: 'Цвет' },
{ id: 'geometry', label: 'Геометрия' },
{ id: 'filters', label: 'Фильтры' },
{ id: 'analyze', label: 'Анализ' },
{ id: 'generate', label: 'Генерация' }
/**
* Порядок категорий в каталоге. Человекочитаемые названия живут в словарях
* i18n: секция categories, ключ = CategoryId.
*/
export const CATEGORIES: readonly CategoryId[] = [
'convert',
'alpha',
'color',
'geometry',
'filters',
'analyze',
'generate'
];
+1 -1
View File
@@ -21,7 +21,7 @@ describe('реестр инструментов', () => {
});
it.each(TOOLS.map((t) => [t.id, t] as const))('%s: категория валидна', (_, tool) => {
expect(CATEGORIES.map((c) => c.id)).toContain(tool.category);
expect(CATEGORIES).toContain(tool.category);
});
it.each(TOOLS.map((t) => [t.id, t] as const))('%s: исполнители определены', (_, tool) => {
+4 -4
View File
@@ -15,11 +15,11 @@
<h1>{t('catalog.heading')}</h1>
<p class="lead text-muted">{t('catalog.lead', { count: TOOLS.length })}</p>
{#each CATEGORIES as category (category.id)}
{@const categoryTools = TOOLS.filter((tool) => tool.category === category.id)}
{#each CATEGORIES as category (category)}
{@const categoryTools = TOOLS.filter((tool) => tool.category === category)}
{#if categoryTools.length > 0}
<section id={category.id} class="category" aria-labelledby="{category.id}-heading">
<h2 id="{category.id}-heading" class="heading-section">{t(`categories.${category.id}`)}</h2>
<section id={category} class="category" aria-labelledby="{category}-heading">
<h2 id="{category}-heading" class="heading-section">{t(`categories.${category}`)}</h2>
<div class="grid">
{#each categoryTools as tool (tool.id)}
<div class="panel">