
Język 🇵🇱 Polski
Tło
API
Tworzenie Extensions
Kontekst
FastComments umożliwia rozszerzanie naszej podstawowej funkcjonalności za pomocą skryptów, które nazywamy Extensions.
Extension może dodać dodatkowe elementy HTML do widżetu komentarzy, zarejestrować nasłuchiwacze zdarzeń i uruchamiać dowolny kod.
Tutaj znajdziesz przykłady extensions, które stosujemy w środowisku produkcyjnym, a także dokumentację dotyczącą tworzenia extensions.
Cykl życia rozszerzenia 
Skrypt dla każdego rozszerzenia jest pobierany i uruchamiany zanim widżet komentarzy zacznie pobierać pierwszy zestaw komentarzy i renderować UI.
Na początkowym ładowaniu następujące dane zostaną przypisane do obiektu rozszerzenia:
config- Odwołanie do obiektuconfig.translations- Odwołanie do obiektutranslations.commentsById- Odwołanie do wszystkich komentarzy według id.root- Odwołanie do głównego węzła DOM.
Rozszerzenia powinny nadpisać pożądane funkcje, które widżet komentarzy wywoła w odpowiednich momentach.
Definiowanie rozszerzenia 
Najmniejsze możliwe rozszerzenie wyglądałoby następująco:
Run 
Na potrzeby tego przykładu zapisz to jako my-extension.js i udostępnij pod adresem https://example.com/my-extension.min.js.
To rozszerzenie nic nie robi, poza tym przy wczytaniu pobiera obiekt rozszerzenia utworzony przez główną bibliotekę komentarzy.
This Extension object is a singleton and is not shared with any other extensions.
Aby załadować nasze rozszerzenie, musimy poinformować o tym widżet komentarzy. Na przykład:
Run 
Przykłady funkcjonalne znajdują się w następnej sekcji.
Przykładowe rozszerzenia 
W FastComments tworzymy własne rozszerzenia, korzystając z tego samego API. Możesz przeglądać nieskompresowany kod tych rozszerzeń pod następującymi endpointami:
Tryb ciemny
Rozszerzenie Tryb ciemny jest ładowane warunkowo, kiedy wykryta zostanie strona "dark". To rozszerzenie po prostu dodaje trochę CSS do widżetu komentarzy. W ten sposób nie musimy ładować CSS trybu ciemnego, gdy nie jest potrzebny.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderacja
Gdy bieżący użytkownik jest moderatorem, używamy rozszerzenia moderacji.
To dobry przykład dodawania nasłuchiwaczy zdarzeń opartych na kliknięciach, wykonywania żądań do API, dodawania pozycji do menu komentarza oraz obszarów komentarzy.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Czat na żywo
Rozszerzenie Czat na żywo (w połączeniu z inną konfiguracją i stylizacją) zamienia widżet komentarzy w komponent czatu na żywo.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Obiekt rozszerzenia 
Obiekt rozszerzenia składa się z następującej definicji:
Run 
API rozszerzenia 
Interakcja z Extension jest prosta — wystarczy zdefiniować odniesienia do funkcji, które chcemy wywołać.
Bazując na wcześniejszym przykładzie, załóżmy, że chcemy dodać HTML na początku każdego komentarza:
Run 
Kiedykolwiek zwrócisz HTML w ten sposób, zostanie on scalony z interfejsem użytkownika za pomocą algorytmu porównywania DOM (dom-diffing).
Ręczne wywoływanie ponownego renderowania komentarza
Możemy poczekać na początkowe załadowanie strony i ręcznie ponownie wyrenderować komentarz, wywołując reRenderComment:
Run 