Ниже — div'ы с классами rules_link, privacy_link,
personal_data_link. Внутри каждого — два вложенных div (как делает Tilda),
внутри которых ссылка с драфтовым href.
После загрузки /api/documents код заменяет href на URL из ответа бэкенда
(или #, если бэкенд не вернул значение).
/ — хост-сайт.embed.js только для модалок
(sign-in, sign-up, check-grabber, feedback) и виджета победителей.embed.js → создаёт Shadow DOM в #app → загружает
version.json → инжектит fonts.css + root.css
в <head> → инжектит app.css в Shadow DOM →
загружает JS-бандл → ждёт app:ready → инициализирует
клик-виджеты и монтирует #winners.
Это контент хост-сайта. Ниже находится #app, куда монтируется приложение
через embed-скрипт.
После авторизации — редирект на
/account/#/me
(откроется страница ЛК с профилем).
Ниже находится #winners. embed.ts сам находит
этот элемент, создаёт в нём Shadow DOM, инжектит CSS и монтирует
отдельный Vue-инстанс с WinnersIndex.
/account/ — полноценное SPA личного
кабинета.createWebHashHistory(). Хеш-маршруты:
#/me → профиль,
#/me/profile, #/me/checks, #/me/prizes,
#/me/achievements.restoreSession() редиректит на / (хост).
| Раздел | URL | Хеш |
|---|---|---|
| Профиль |
/account/#/me/profile
|
#/me/profile |
| Чеки |
/account/#/me/checks
|
#/me/checks |
| Призы |
/account/#/me/prizes
|
#/me/prizes |
| Достижения |
/account/#/me/achievements
|
#/me/achievements |
Ниже #app-account — контейнер для SPA личного кабинета.
На этой странице embed.js найдёт этот контейнер как #app,
создаст в нём Shadow DOM и загрузит приложение.