[page-templates] Помечать template-страницы значком в дереве #38

Closed
opened 2026-06-20 20:45:18 +03:00 by Ghost · 0 comments

Проблема

Страницу можно пометить как шаблон (ПКМ по странице в дереве → «Mark as template», POST /api/pages/toggle-template, флаг pages.is_template). Но в самом дереве страниц никак не видно, что страница — шаблон: метка isTemplate есть на узле дерева, но рендерится только пункт меню для переключения, а сам ряд страницы её не показывает.

Подтверждение в коде: isTemplate читается только в apps/client/src/features/page/tree/components/space-tree-node-menu.tsx (тогл). В рендере ряда — space-tree-row.tsx / space-tree.tsx / doc-tree-row.tsx — поле не используется, значка/бейджа нет.

Чего хочется

Визуально помечать template-страницы в дереве, чтобы на глаз отличать их от обычных (значок/бейдж, например IconTemplate из @tabler/icons-react, который уже импортируется в меню).

Где делать

  • apps/client/src/features/page/tree/components/space-tree-row.tsx (и/или doc-tree-row.tsx) — отрисовать индикатор рядом с заголовком/иконкой узла, когда node.isTemplate === true.
  • Поле isTemplate уже приходит на узел дерева (apps/client/src/features/page/tree/types.ts, page.types.ts) и обновляется оптимистично в space-tree-node-menu.tsx при тогле — отдельного запроса не нужно, метка появится сразу после переключения.
  • i18n-строка для tooltip/aria (напр. «Template»).

Критерии приёмки

  • У страницы с is_template = true в дереве виден значок/бейдж шаблона; у обычной — нет.
  • Метка появляется/исчезает сразу при «Mark as template» / «снять» (оптимистичный апдейт уже есть).
  • Доступность: у значка есть title/aria-label.

Связанное (опционально, можно отдельным ишью)

В пикере вставки page-embed тоже полезно показывать/фильтровать, какие страницы — шаблоны, чтобы их было проще выбирать. Здесь — только метка в дереве.

Замечено при ручной проверке ветки feat/page-templates (PR #17).

## Проблема Страницу можно пометить как шаблон (ПКМ по странице в дереве → «Mark as template», `POST /api/pages/toggle-template`, флаг `pages.is_template`). Но в самом дереве страниц **никак не видно**, что страница — шаблон: метка `isTemplate` есть на узле дерева, но рендерится только пункт меню для переключения, а сам ряд страницы её не показывает. Подтверждение в коде: `isTemplate` читается только в `apps/client/src/features/page/tree/components/space-tree-node-menu.tsx` (тогл). В рендере ряда — `space-tree-row.tsx` / `space-tree.tsx` / `doc-tree-row.tsx` — поле не используется, значка/бейджа нет. ## Чего хочется Визуально помечать template-страницы в дереве, чтобы на глаз отличать их от обычных (значок/бейдж, например `IconTemplate` из `@tabler/icons-react`, который уже импортируется в меню). ## Где делать - `apps/client/src/features/page/tree/components/space-tree-row.tsx` (и/или `doc-tree-row.tsx`) — отрисовать индикатор рядом с заголовком/иконкой узла, когда `node.isTemplate === true`. - Поле `isTemplate` уже приходит на узел дерева (`apps/client/src/features/page/tree/types.ts`, `page.types.ts`) и обновляется оптимистично в `space-tree-node-menu.tsx` при тогле — отдельного запроса не нужно, метка появится сразу после переключения. - i18n-строка для tooltip/aria (напр. «Template»). ## Критерии приёмки - У страницы с `is_template = true` в дереве виден значок/бейдж шаблона; у обычной — нет. - Метка появляется/исчезает сразу при «Mark as template» / «снять» (оптимистичный апдейт уже есть). - Доступность: у значка есть title/aria-label. ## Связанное (опционально, можно отдельным ишью) В пикере вставки page-embed тоже полезно показывать/фильтровать, какие страницы — шаблоны, чтобы их было проще выбирать. Здесь — только метка в дереве. > Замечено при ручной проверке ветки `feat/page-templates` (PR #17).
Ghost closed this issue 2026-06-21 01:51:54 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: vvzvlad/gitmost#38