waku-react/src/useCreatContentPair.ts
Sasha dce1bb6301
feat!: remove usePeers, upgrade waku (#9)
* upgrade waku version, remove usePeers (from prev discussions)

* fix formatting

* bumb to 0.0.2
2023-06-23 22:51:52 +02:00

33 lines
906 B
TypeScript

import React from "react";
import { createDecoder, createEncoder, waku } from "@waku/sdk";
import type { ContentPair } from "./types";
/**
* Creates Encoder / Decoder pair for a given contentTopic.
* @param {string} contentTopic - topic to orient to
* @param {boolean} ephemeral - makes messages ephemeral, default to false
* @returns {Object} Encoder / Decoder pair
*/
export const useCreateContentPair = (
contentTopic: string,
ephemeral = false,
): ContentPair => {
const [encoder, setEncoder] = React.useState<waku.Encoder>(
createEncoder({ contentTopic, ephemeral }),
);
const [decoder, setDecoder] = React.useState<waku.Decoder>(
createDecoder(contentTopic),
);
React.useEffect(() => {
setEncoder(createEncoder({ contentTopic, ephemeral }));
setDecoder(createDecoder(contentTopic));
}, [contentTopic, ephemeral]);
return {
encoder,
decoder,
};
};