Files
Randify.pro/.sisyphus/plans/dm-hotfixes.md
T
emil aaf596a7bc fix(dm): OAuth redirect_uri, orange buttons, denser layout, hide lang switcher
- Fix OAuth redirect_uri mismatch in VK/Yandex callbacks (use PUBLIC_APP_URL)
- Make quick dice buttons and anchor nav links orange by default
- Densify DM Dashboard layout (smaller gaps, tighter spacing)
- Hide LanguageSwitcher/Blog/About/Privacy links on DM pages
- Increase notes textarea height for better usability
2026-05-15 01:42:09 +03:00

78 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DM Dashboard Hotfixes — Рабочий план
## TL;DR
> **Quick Summary**: Исправить критические баги DM Dashboard после деплоя: OAuth не работает из-за несовпадения redirect_uri, кнопки не оранжевые по умолчанию, переключатель языка мешает на DM-страницах, layout слишком разреженный.
>
> **Estimated Effort**: Small
> **Parallel Execution**: YES — 3 параллельных фикса
---
## Issues
### I1. OAuth redirect_uri mismatch (КРИТИЧЕСКИЙ)
**Суть**: В `login/yandex.ts` и `login/vk.ts` используется `process.env.PUBLIC_APP_URL || url.origin` для `redirect_uri` (→ `https://randify.pro/...`), но в `callback/yandex.ts` и `callback/vk.ts` используется `${url.origin}/...` (→ `http://localhost:4321/...` за nginx). OAuth-провайдер отклоняет token exchange из-за несовпадения redirect_uri.
**Фикс**: Использовать `process.env.PUBLIC_APP_URL || url.origin` в callback-файлах.
### I2. Кнопки не оранжевые по умолчанию
**Суть**:
- Quick dice buttons в `DiceRoller.astro` — серые (`bg-[var(--bg-secondary)]`), оранжевые только на hover
- Anchor nav links в `dm/index.astro` — серые, оранжевые только на hover
- `DmButton` primary — корректно оранжевый, это ок
**Фикс**: Сделать quick dice buttons и anchor nav links оранжевыми по умолчанию (accent background или accent text/border).
### I3. LanguageSwitcher мешает на DM-страницах
**Суть**: `BaseLayout.astro` всегда рендерит `<LanguageSwitcher />` (line 108). На DM-страницах в правом верхнем углу висят переключатель EN/RU + ссылки Blog/About/Privacy. Пользователь просит убрать — DM Dashboard должен выглядеть как самостоятельный продукт.
**Фикс**: Добавить prop `hideLanguageSwitcher` в `BaseLayout`, передавать `true` из `DmLayout`.
### I4. Layout слишком разреженный
**Суть**: Grid `grid-cols-1 lg:grid-cols-2 gap-6` создаёт слишком много пустого пространства. Пользователь просит "более приятное и плотное расположение".
**Фикс**: Уменьшить gap, возможно сделать некоторые секции шире, улучшить использование пространства.
---
## TODOs
- [x] F1. Fix OAuth redirect_uri in callback handlers (vk + yandex)
- [x] F2. Make quick dice buttons and anchor nav accent-colored by default
- [x] F3. Hide LanguageSwitcher on DM pages
- [x] F4. Densify DM Dashboard layout
## Final Verification Wave
- [ ] FV1. **OAuth End-to-End Test** — `unspecified-high`
- Проверить что Yandex OAuth проходит полный цикл login → callback → redirect to /dm/
- Проверить что VK OAuth проходит полный цикл
- Verify: оба провайдера работают на https://randify.pro
- [ ] FV2. **Visual QA** — `visual-engineering`
- Проверить что кнопки оранжевые по умолчанию
- Проверить что LanguageSwitcher не отображается на /dm/
- Проверить что layout плотный и приятный
- Verify: скриншоты или ручная проверка
## Definition of Done
- [ ] OAuth работает с обоими провайдерами в продакшене
- [ ] Все кнопки DM оранжевые (accent) по умолчанию
- [ ] На /dm/ нет LanguageSwitcher и ссылок Blog/About/Privacy
- [ ] Layout DM Dashboard компактный и визуально приятный
- [ ] Существующие генераторы Randify не сломаны
- [ ] `npm run build` проходит без ошибок
## Scope
**IN**:
- Фиксы перечисленных багов
- Только DM Dashboard страницы
**OUT**:
- Новые фичи
- Изменения существующих генераторов
- Изменения не-DM страниц