Commit Graph

322 Commits

Author SHA1 Message Date
Kirill 13cc1fa2b8 docs: add VK no-email fix design spec 2026-05-22 22:51:03 +05:00
Kirill f0af519ec1 fix: VK OAuth uses short UUID state + in-memory PKCE store instead of JWT 2026-05-22 21:02:33 +05:00
Kirill 9d7e7949b9 feat: migrate VK OAuth to VK ID flow with PKCE 2026-05-22 20:54:48 +05:00
Kirill bead725036 fix: strip trailing slash from SERVER_PUBLIC_URL to prevent double-slash in OAuth redirect_uri 2026-05-22 20:31:02 +05:00
Kirill caa9b926e3 пва 2026-05-22 20:20:08 +05:00
Kirill 0f2ac862de feat: add WB_PVZ (Wildberries pickup) delivery carrier 2026-05-22 19:51:34 +05:00
Kirill cc94917c5f feat: add email, phone, VK contacts to About page 2026-05-22 19:43:31 +05:00
Kirill 3d0dbdd0a5 пва 2026-05-22 19:41:47 +05:00
Kirill 5644a2ede2 feat: replace footer VK inline icon with SVG logo 2026-05-22 19:41:04 +05:00
Kirill 20e4b1e0ab feat: latin-only slugs, server-side avatar generation, remove unused User fields 2026-05-22 19:32:30 +05:00
Kirill 02c7d7ba36 fix: review avatar uses authorId instead of displayName, show reviews for hidden products 2026-05-22 19:14:22 +05:00
Kirill a96944328d style: prettier format SseProvider test 2026-05-22 18:46:42 +05:00
Kirill 3b627e8e2f feat: mount SseProvider, remove polling from layouts 2026-05-22 18:45:00 +05:00
Kirill 86523cda71 feat: add SseProvider — SSE to ReactQuery bridge with tests 2026-05-22 18:43:02 +05:00
Kirill a5e875292d test: add SseProvider tests (TDD red) 2026-05-22 18:40:57 +05:00
Kirill a84045a68d feat: add EventSource factory for SSE 2026-05-22 18:39:10 +05:00
Kirill 4381121f25 feat: register SSE routes in server 2026-05-22 18:38:48 +05:00
Kirill e2a04d04a3 fix: add safeWrite guard and error handler for SSE socket 2026-05-22 18:37:55 +05:00
Kirill 5127d4a093 feat: add SSE route with EventBus bridge and tests 2026-05-22 18:33:49 +05:00
Kirill 55dc58cff8 fix: gate ADMIN_EMAIL test with explicit skip 2026-05-22 18:25:22 +05:00
Kirill 6b89f42269 test: add SSE route tests (TDD red) 2026-05-22 18:23:11 +05:00
Kirill 3212d6c185 docs: SSE realtime implementation plan 2026-05-22 18:18:54 +05:00
Kirill 76c8564e77 docs: SSE realtime design spec 2026-05-22 18:08:24 +05:00
Kirill 8fb01126b8 пва 2026-05-22 17:47:22 +05:00
Kirill bc85fa8e84 пва 2026-05-22 17:44:42 +05:00
Kirill b38b24f158 fix(auth): add missing onRegisterChange prop to test 2026-05-22 16:04:50 +05:00
Kirill c903db439d fix(auth): enable register tab switching 2026-05-22 15:59:38 +05:00
Kirill 237106f2a4 fix(client): parse error message properly in ProfileSection 2026-05-22 15:41:50 +05:00
Kirill 955368d898 Merge branch 'refac2' 2026-05-22 15:36:48 +05:00
Kirill f39d4e82ff пва 2026-05-22 15:36:39 +05:00
Kirill 2b5c7fff5e fix(server): remove duplicate registerAuthRoutes call 2026-05-22 15:31:35 +05:00
Kirill b3b539b6fb fix(api): register auth routes
Add missing registerAuthRoutes call in registerApiRoutes to enable
POST /api/auth/request-code, /verify-code, /register, /login,
/forgot-password, /reset-password, and PATCH /api/me/profile routes
2026-05-22 15:21:55 +05:00
Kirill 49f24d7482 split auth.js into focused modules (Task 3)
- auth-session.js: GET /api/me, GET /api/me/auth-methods
- auth-password.js: POST /api/me/password, POST /api/me/change-password
- auth-oauth.js: DELETE /api/me/oauth/:provider
- auth.js: kept only /api/auth/* routes + /api/me/profile
- api.js: registers new auth route modules
- tests split to separate files per module
2026-05-22 15:19:30 +05:00
Kirill be9a9bad8e fix(Task 2): add error handling and sync state with user
- AuthMethodsSection: show Alert on fetchAuthMethodsFx failure
- AvatarSection: sync selectedStyle with user.avatarStyle via Select key
- ProfileSection: reset form defaultValues when user.displayName changes
2026-05-22 15:15:50 +05:00
Kirill fa276eb7f3 fix(settings): use $updateProfileError and changePasswordFx per spec 2026-05-22 15:10:20 +05:00
Kirill e273c29c36 refactor(SettingsPage): split into ProfileSection, AvatarSection, AuthMethodsSection
- Extract ProfileSection (45 lines): display name form with save button
- Extract AvatarSection (114 lines): avatar preview, style selector, generate/save/cancel
- Extract AuthMethodsSection (204 lines): auth methods list, set/change password forms
- Rewrite SettingsPage as composer (41 lines): composes 3 sections with dividers
- Add tests for all 3 sections
2026-05-22 15:04:49 +05:00
Kirill 03e60e46f3 fix(auth): defer setState in OAuth error effect to avoid cascading renders 2026-05-22 14:50:38 +05:00
Kirill b1530ef705 fix(auth): add forgot password flow and fix OAuth URL clearing 2026-05-22 14:47:06 +05:00
Kirill 68bbbf8895 refactor(auth): extract AuthPasswordForm and AuthCodeForm to features
- Create auth-password feature with login/register form
- Create auth-code feature with email+code verification form
- Extract getApiErrorMessage to shared lib
- Simplify AuthPage to pure UI composer with tabs
- Update tests for new component structure
- All 40 tests passing
2026-05-22 14:36:19 +05:00
Kirill da13ce2848 Merge branch 'autorizayion' 2026-05-22 14:22:28 +05:00
Kirill c9fb9cc8fc test commit 2026-05-22 14:22:24 +05:00
Kirill d79d02d5d1 refactor: remove email change functionality 2026-05-22 14:20:11 +05:00
Kirill ad43ff98b6 feat: add password change and reset via email code 2026-05-22 14:12:29 +05:00
Kirill 22282c5f4e fix: accept token as query param in authenticate, pass token to oauth link URL 2026-05-22 13:52:48 +05:00
Kirill d51266446f fix(client): remove global borderWidth change on outlined button hover 2026-05-22 13:49:31 +05:00
Kirill b7c11fbce6 test commit 2026-05-22 13:46:37 +05:00
Kirill f02c615dd9 fix(client): remove hover shift on pill tabs and OAuth buttons 2026-05-22 13:45:05 +05:00
Kirill cf61a5c44f fix(client): remove OAuth tab, show VK/Yandex always with separator, fix pill hover offset 2026-05-22 13:41:52 +05:00
Kirill e468625cfc chore: fix type errors, move textAlign/fontWeight to sx 2026-05-22 13:28:45 +05:00
Kirill 9696a4dcc3 feat(client): redesign auth page with minimal style, BearLogo, pill buttons 2026-05-22 13:24:35 +05:00