feat: information pages — admin editor with TipTap, public viewer

Admin panel:
- New section "Информационные страницы" in admin nav
- Admin list: slug, title, active toggle, edit/delete, sort order
- Admin editor: full TipTap (bold, italic, headings, lists, links,
  image/video upload, alignment, highlight, code blocks)
  with locale tabs (RU/EN/ZH/FA) for title and content
- Create/edit via URL params, slug auto-generation

Public:
- /info/:slug route with DOMPurify sanitized content
- Locale fallback, Telegram safe area, loading skeleton, 404

i18n: all 4 locales
This commit is contained in:
Fringg
2026-04-24 08:11:20 +03:00
parent d43638b34e
commit 7d6d0ba344
10 changed files with 1748 additions and 4 deletions

View File

@@ -1126,7 +1126,8 @@
"landings": "Landings",
"referralNetwork": "Referral Network",
"news": "News",
"bulkActions": "Bulk Actions"
"bulkActions": "Bulk Actions",
"infoPages": "Info Pages"
},
"panel": {
"title": "Admin Panel",
@@ -3798,6 +3799,37 @@
"prev": "Previous",
"next": "Next"
}
},
"infoPages": {
"title": "Information Pages",
"subtitle": "Manage static information pages",
"create": "Create Page",
"edit": "Edit",
"save": "Save",
"saving": "Saving...",
"saved": "Page saved",
"delete": "Delete",
"confirmDelete": "Delete this page?",
"saveError": "Failed to save page. Please try again.",
"noPages": "No information pages yet",
"notFound": "Page not found",
"active": "Active",
"inactive": "Inactive",
"localeLabel": "Content Language",
"fields": {
"slug": "URL Slug",
"title": "Title",
"content": "Content",
"isActive": "Active",
"sortOrder": "Sort Order",
"icon": "Icon (emoji)"
},
"locales": {
"ru": "Russian",
"en": "English",
"zh": "Chinese",
"fa": "Persian"
}
}
},
"adminUpdates": {