- 16 przyciskow w breadcrumbach zamienionych na <Link> (semantyka linku,
otwieranie w nowej karcie, podglad celu na hover)
- naglowek: "Moje konto" i "Dodaj ogloszenie za darmo" jako <Link>
- CSS breadcrumbow rozszerzony o warianty <a>, wyglad bez zmian
(zweryfikowane zrzutami ekranu)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- aktywna zakladka wyznaczana z adresu (useParams), nie z useState
- setTab() nawiguje zamiast zmieniac stan lokalny
- sidebar admina: <button> -> <NavLink>
- typ AdminTab zunifikowany z AdminTabKey z routes.ts
- nieznana sekcja /admin/cokolwiek -> strona 404
- CSS .admin-nav rozszerzony o warianty <a>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rdzen migracji - kazdy widok ma wlasny adres URL:
- render {view === '...'} zastapiony przez <Routes> z 31 trasami
- usuniete: type View, PROTECTED_VIEWS, proteza #login, stan view/mapCity/
mapOfferType/selectedListingId/messageThreadTarget
- prop onNavigate (166 wystapien) zastapiony hookiem useNavigate w komponentach
- /oferta/:id czyta identyfikator z adresu (ListingDetailRoute)
- /mapa?miasto=&typ= czyta parametry z query stringa (MapSearchRoute)
- dane przejsciowe miedzy trasami (watek wiadomosci, oferta do negocjacji)
przekazywane w location.state zamiast globalnego stanu
- ProtectedRoute na trasach konta, requireAdmin na /admin
- powrot do zamierzonego celu po zalogowaniu (location.state.from)
- Header i AccountSidebar: <button> -> <NavLink>, aktywnosc z adresu
- strona 404 dla nieznanych adresow
- CSS: selektory menu rozszerzone o warianty <a> (wyglad bez zmian)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fundament migracji z useState(view) na prawdziwy routing:
- react-router-dom 7 w zaleznosciach
- BrowserRouter w main.tsx (nginx ma juz try_files, wiec czyste sciezki dzialaja)
- routes.ts: centralna mapa adresow + helpery listingPath/mapPath/adminTabPath
- ProtectedRoute z obsluga stanu loading z AuthProvider
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Kalkulator zdolności kredytowej: nowy widok z live-obliczeniami (rata
annuitetowa/malejąca, DTI/DSTI, rekomendacje, donut), wpięty w poradnik,
panel i stronę główną; pasek boczny konta dla zalogowanych.
- Moje oferty: prawdziwe ogłoszenia (/listings/mine) scalone z listą,
realne akcje Wstrzymaj/Wznów (PATCH /status, nowy status PAUSED),
Usuń (DELETE) z kontrolą właściciela; realne wyświetlenia (viewsCount)
i zapisane z ulubionych. Fix CHECK constraintu enuma w SchemaFixer.
- System powiadomień: encja Notification + serwis + kontroler + SSE
realtime (token w query param w JwtAuthFilter). Podpięte źródła
serwerowe (wiadomości, zmiana statusu ogłoszenia, zdarzenia konta)
i klienckie (ulubione, spadek ceny, spotkania, weryfikacja telefonu).
Centralny NotificationsProvider; dzwonek i strona bez zmian designu,
klikalne z deep-linkami i oznaczaniem jako przeczytane.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>