mirror of
https://github.com/logos-messaging/waku-react.git
synced 2026-01-02 14:13:10 +00:00
* use React global var * use undefined instead on null * use react as peer dependency * make ephemeral default to false * set default ephemeral to false, use node instead of waku naming * implement useStoreMessages * fix types * export useStoreMessages * make content pair set initially * remove deps for useEffect for createWaku to prevent re rendering * prevent setting of empty messages * accept undefined node, handle empty message case * accept undefined node, handle empty message case * add TODOs * rename to useCreateContentPair * remove export of WakuContext, create ContetnPair provider * remove export of WakuContext, create ContetnPair provider * fix lint * fix typo * remove export * fix prettier * make decoded optional * add jsdocs * add useLightPush hook * update types, add usePeers, add prettierignore * remove full node hook, provider * remove export * remove FullNode stuff
34 lines
962 B
TypeScript
34 lines
962 B
TypeScript
import React from "react";
|
|
import { createDecoder, createEncoder } from "@waku/core";
|
|
import type { Decoder, Encoder } from "@waku/core/dist/lib/message/version_0";
|
|
|
|
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<Encoder>(
|
|
createEncoder(contentTopic, ephemeral),
|
|
);
|
|
const [decoder, setDecoder] = React.useState<Decoder>(
|
|
createDecoder(contentTopic),
|
|
);
|
|
|
|
React.useEffect(() => {
|
|
setEncoder(createEncoder(contentTopic, ephemeral));
|
|
setDecoder(createDecoder(contentTopic));
|
|
}, [contentTopic, ephemeral]);
|
|
|
|
return {
|
|
encoder,
|
|
decoder,
|
|
};
|
|
};
|