
Мова 🇺🇦 Українська
Загальна інформація
API
Написання розширень
Розробка Extensions
Контекст
FastComments надає можливість розширювати нашу основну функціональність за допомогою скриптів, які ми називаємо Extensions.
Extension може додавати додаткову розмітку до віджета коментарів, реєструвати обробники подій та виконувати довільний код.
Тут ви знайдете приклади Extensions, які ми маємо у виробничому середовищі, а також документацію про те, як писати Extensions.
Життєвий цикл розширення 
Скрипт для кожного розширення завантажується та виконується до того, як віджет коментарів почне завантажувати перший набір коментарів і відображати інтерфейс користувача.
На початковому завантаженні до об'єкта розширення буде додано такі дані:
config- Посилання на об'єктconfig.translations- Посилання на об'єктtranslations.commentsById- Посилання на всі коментарі за id.root- Посилання на кореневий DOM-вузол.
Розширення повинні перевизначити необхідні функції, які віджет коментарів викликатиме у відповідні моменти.
Визначення розширення 
Найпростіше можливе розширення виглядатиме так:
Run 
Для цілей цього прикладу збережіть його як my-extension.js і зробіть доступним за адресою https://example.com/my-extension.min.js.
Це розширення нічого не робить, окрім того, що під час завантаження воно отримує об'єкт розширення, створений основною бібліотекою коментарів.
Цей об'єкт Extension є синглтоном і не надається спільно жодним іншим розширенням.
Далі, щоб завантажити наше розширення, ми маємо повідомити про нього віджет коментарів. Наприклад:
Run 
Функціональні приклади дивіться в наступному розділі.
Приклади розширень 
У FastComments ми пишемо власні розширення, використовуючи той самий API. Ви можете переглянути не мінімізований код для цих розширень за наступними кінцевими точками:
Темний режим
Розширення Темного режиму завантажується умовно, коли виявляється сторінка з "dark". Це розширення просто додає трохи CSS до віджета коментарів. Таким чином нам не потрібно завантажувати CSS для темного режиму, коли він не потрібен.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Модерація
Коли поточний користувач є модератором, ми використовуємо розширення модерації.
Це хороший приклад для додавання обробників подій клацання, виконання API-запитів, додавання до меню коментаря та областей коментарів.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Живий чат
Розширення Живого чату (у поєднанні з іншими налаштуваннями та стилями) перетворює віджет коментарів на компонент живого чату.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Об'єкт розширення 
Об'єкт розширення складається з наступного визначення:
Run 
API розширення 
Взаємодія з Extension проста: ми просто визначаємо посилання на функції, які хочемо викликати.
Продовжуючи попередній приклад, припустімо, що ми хочемо додати HTML зверху кожного коментаря:
Run 
Коли ви повертаєте HTML таким чином, він буде об'єднаний з UI за допомогою алгоритму dom-diffing.
Ручний повторний рендер коментаря
Ми можемо дочекатися початкового завантаження сторінки і вручну повторно відрендерити коментар, викликавши reRenderComment:
Run 