Lerqiu / FOODE

0 stars 0 forks source link

Frontend review #3 #36

Open Arsenicro opened 2 years ago

Arsenicro commented 2 years ago
Lerqiu commented 2 years ago

https://github.com/Lerqiu/FOODE/blob/8317301ee828264016b243778763c8240935c902/frontend/src/components/Navbar/Navbar.tsx#L14

Występuje wyłącznie dla wygody w definiowaniu ścieżki. Zmieniłem nazwę importu, by element stał się czytelniejszy.

Lerqiu commented 2 years ago

https://github.com/Lerqiu/FOODE/blob/b4a55d4e3a5551e845ca81128b7ec3ba1b3e8309/frontend/src/components/Offers/Pagination/ProductsOffersPagination.tsx#L19 Ograniczamy tu maksymalną liczbę wyborów stron na pasku paginacji. Poprawiłem nazewnictwo.

Lerqiu commented 2 years ago

https://github.com/Lerqiu/FOODE/blob/070ecbf7d30fc22276fc698a6819e767caa55f48/frontend/src/page/offer-page/OffersPage.tsx#L29

Rozumiem że jeśli backend zwróci totalPages jako -1, 0 i 1 to stron jest zawsze 1? Bardziej adekwatnie byłoby powiedzieć że jeśli nie mamy przynajmniej jednej strony to mamy ich null i obsłużyć jakoś inaczej empty state, niż pokazywać że stron mamy jedną (ale to jest uwaga bardziej stylistyczna niż funkcjonalna).

Z serwera otrzymujemy informację o ilości stron składający się na rekord (0 dla pustego zbioru) oraz komponent material UI wymaga liczby (dobrze prezentuje się dla >= 1). Ponieważ przez cały czas życia dysponujemy liczbą, stwierdziłem, że to będzie łatwiejsze/ładniejsze.

Lerqiu commented 2 years ago

https://github.com/Lerqiu/FOODE/blob/8317301ee828264016b243778763c8240935c902/frontend/src/components/Offers/OfferList/Offer/OfferDate/OfferDate.tsx#L7

To rzeczywiście nie musi być funkcją.

Arsenicro commented 2 years ago

https://github.com/Lerqiu/FOODE/blob/b4a55d4e3a5551e845ca81128b7ec3ba1b3e8309/frontend/src/components/Offers/Pagination/ProductsOffersPagination.tsx#L19

Ograniczamy tu maksymalną liczbę wyborów stron na pasku paginacji. Poprawiłem nazewnictwo.

Nadal nie rozumiem po co to jest. Jeśli pageCount nie może być większy niż 10 (nie wiem czemu tak miałoby być, co jeśli będzie więcej rekordów?), to nie powinno być opcji ustawienia tego na coś większego niż 10. W tym momencie pageCount może rosnąć do dużych liczb, ale liczba stron nadal będzie maksymalnie 10, co jest bardzo nieintuicyjne

https://github.com/Lerqiu/FOODE/blob/070ecbf7d30fc22276fc698a6819e767caa55f48/frontend/src/page/offer-page/OffersPage.tsx#L29

Rozumiem że jeśli backend zwróci totalPages jako -1, 0 i 1 to stron jest zawsze 1? Bardziej adekwatnie byłoby powiedzieć że jeśli nie mamy przynajmniej jednej strony to mamy ich null i obsłużyć jakoś inaczej empty state, niż pokazywać że stron mamy jedną (ale to jest uwaga bardziej stylistyczna niż funkcjonalna).

Z serwera otrzymujemy informację o ilości stron składający się na rekord (0 dla pustego zbioru) oraz komponent material UI wymaga liczby (dobrze prezentuje się dla >= 1). Ponieważ przez cały czas życia dysponujemy liczbą, stwierdziłem, że to będzie łatwiejsze/ładniejsze.

Tak, ale gubicie tą informację cemu tu jest 0. Jeśli backend zwrócił 0 albo -1 to znaczy że mamy jakąś niestandardową sytuację, coś poszło nie tak. Ustawienie tego na null ma więcej sensu. Tak, musimy wtedy zadbać przy renderowaniu o to, żeby to była odpowiednia liczba, ale wtedy mamy więcej opcji bez konieczności robienia refactoru. Możemy np. nie wyświetlać paginacji wcale, albo wyświetlić jakiś specjalny "pusty stan" paginacji. W tym momencie gubicie informację że coś poszło nie tak, na rzecz tego żeby gdzieś dalej, w jakimś potomku tego komponentu, napisać o jedną linijkę mniej. Takie kombinacje, jeśli już się dzieją, powinny się dziać w komponencie który ich potrzebuje (w tym przypadku komponent Paginacji), bo wtedy za dwa miesiące jak usiądziesz do kodu będziesz mógł łatwo coś zmienić (np jeśli za dwa miesiące ktoś ci każe nie pokazywać paginacji jeśli był błąd)