Перейти к основному содержанию

React-хуки

Пакет bitsocial-react-hooks даёт привычный API React-хуков для работы с протоколом Bitsocial. Он берёт на себя загрузку лент, комментариев и профилей авторов, управление аккаунтами, публикацию контента и подписку на сообщества — и всё это без центрального сервера.

Эта библиотека — основной интерфейс, который используют 5chan и другие клиентские приложения Bitsocial.

примечание

bitsocial-react-hooks пока не публикуется в npm: пакет подключается напрямую из GitHub.

Установка

Раз пакета ещё нет в npm, устанавливайте его прямо из GitHub, закрепляя конкретный хеш коммита:

yarn add https://github.com/bitsocialnet/bitsocial-react-hooks.git#<commit-hash>

Подставьте вместо <commit-hash> нужный вам коммит.

Обзор API

Хуки разбиты по функциональным категориям. Ниже — сводка самых востребованных хуков в каждой из них. Полные сигнатуры, параметры и типы возвращаемых значений смотрите в полном справочнике API на GitHub.

Аккаунты

Управление локальными аккаунтами пользователя, его идентичностью и настройками.

  • useAccount(accountName?) — возвращает активный (или указанный по имени) аккаунт
  • useAccounts() — возвращает все аккаунты, сохранённые локально
  • useAccountComments(options?) — возвращает комментарии, опубликованные активным аккаунтом

Комментарии

Получение отдельных комментариев и веток обсуждения и работа с ними.

  • useComment(commentCid?) — загружает один комментарий по его CID
  • useComments(commentCids?) — загружает сразу несколько комментариев
  • useEditedComment(comment?) — возвращает последнюю отредактированную версию комментария

Сообщества

Получение метаданных и настроек сообществ.

  • Хук поиска одного сообщества — загружает сообщество по адресу
  • Хук поиска нескольких сообществ — загружает сразу несколько сообществ
  • Хук статистики сообщества — возвращает число подписчиков и публикаций

Авторы

Поиск профилей авторов и связанных с ними метаданных.

  • useAuthor(authorAddress?) — загружает профиль автора
  • useAuthorComments(options?) — возвращает комментарии конкретного автора
  • useResolvedAuthorAddress(authorAddress?) — приводит человекочитаемый адрес (например, ENS) к адресу протокола

Ленты

Подписка на ленты контента и постраничная загрузка.

  • useFeed(options?) — возвращает постраничную ленту публикаций из одного или нескольких сообществ
  • useBufferedFeeds(feedOptions?) — заранее буферизует несколько лент, чтобы они отрисовывались быстрее
  • useAuthorFeed(authorAddress?) — возвращает ленту публикаций конкретного автора

Действия

Публикация контента и операции записи.

  • usePublishComment(options?) — опубликовать новый комментарий или ответ
  • usePublishVote(options?) — отдать голос за или против
  • useSubscribe(options?) — подписаться на сообщество или отписаться от него

Состояния и RPC

Наблюдение за состоянием подключения и работа с удалённым демоном Bitsocial.

  • useClientsStates(options?) — возвращает состояние подключения клиентов IPFS/pubsub
  • Хук настроек RPC — возвращает текущую конфигурацию демона RPC

Разработка

Чтобы поработать над библиотекой хуков локально:

Что понадобится: Node.js, включённый Corepack, Yarn 4

git clone https://github.com/bitsocialnet/bitsocial-react-hooks.git
cd bitsocial-react-hooks
corepack enable
yarn install

Команды тестирования и сборки смотрите в README репозитория.

Ссылки