
Мова 🇺🇦 Українська
Загальна інформація
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.
Це розширення нічого не робить, окрім того, що при завантаженні воно отримує об'єкт розширення, створений основною бібліотекою коментарів.
This Extension object is a singleton and is not shared with any other extensions.
Далі, щоб завантажити наше розширення, ми повинні повідомити віджет коментарів про нього. Наприклад:
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 