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?)— загружает один комментарий по его CIDuseComments(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 репозитория.
Ссылки
- GitHub: bitsocialnet/bitsocial-react-hooks
- Лицензия: GPL-2.0-only