Realtime, animacje OCR i wyrównanie tabeli zleceń
Filip Borkowski, Backend/Frontend/Fullstack Engineer
Supabase Realtime — naprawa automatycznej aktualizacji
Tabela zleceń subskrybuje zmiany przez Supabase Realtime (useRealtimeTable), ale dane nie odświeżały się automatycznie. Przyczyną była brakująca polityka RLS — tabela orders miała włączone Row Level Security z jedyną polityką dla service_role, co blokowało klienta przeglądarkowego.
Dodanie polityki SELECT TO authenticated odblokowało Realtime — teraz każda zmiana w bazie (nowe zlecenie z emaila, aktualizacja statusu, zmiana pól przez OCR) natychmiast pojawia się w tabeli bez ręcznego odświeżania.
Animacja OCR w trakcie przetwarzania
Zlecenia przychodzące z emaila są przetwarzane asynchronicznie — OCR czyta PDF, AI wyciąga dane. W tym czasie komórki z brakującymi danymi wyświetlały tylko —.
Dodano komponent ProcessingCell: kręcąca się ikona z napisem OCR w kolorze niebieskim. Pojawia się w pustych polach zleceń, które:
- pochodzą z emaila (
emailReceivedAtustawione) - mają co najmniej 5 pustych pól kluczowych (haulier, shipper, numer kontenera, typ, vessel, port załadunku/rozładunku, waga brutto, data załadunku)
- nie mają statusu
completed
Gdy dane zostaną uzupełnione przez OCR i Realtime dostarczy aktualizację — animacja znika automatycznie i zastępuje ją wartość.
Wyrównanie do środka w tabelach
Dodano globalne text-center do komponentu TableCell w src/components/ui/table.jsx. Zmiana dotyczy wszystkich tabel w aplikacji.
Naprawa hydratacji React
Naprawiono błąd hydratacji (#418) — localStorage był odczytywany w useState inicjalizatorze w use-table-font.js i zlecenia/page.jsx. Przeniesiono odczyt do useEffect, co eliminuje mismatch między renderem SSR a klientem.