This example assumes you have already initialized the Hop React
SDK.
import { useChannelMessage } from "@onehop/react";const channelId = "group_chat";export default function MyComponent() { const [chatMessages, setChatMessages] = useState([]); // in this example, USER_MESSAGE is an event that you'd send to the channel from your backend useChannelMessage(channelId, "USER_MESSAGE", (message) => { // this will be called every time the USER_MESSAGE event is sent to this channel setChatMessages((m) => [...m, message]); }); return ( <ul> {chatMessages.map((m) => ( <li> <b>{m.author}</b>: {m.content} </li> ))} </ul> );}
This example assumes you have already initialized the Hop React
SDK.
import { useReadChannelState } from "@onehop/react";const channelId = "weather";export default function MyComponent() { const { state } = useReadChannelState(channelId); // state is null until the client has connected to the channel if (!state) { return <p>Loading...</p>; } return <p>Temperature in London: {state.london?.temperature}</p>;}
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Hop","colors":{"primary":"#8F64F2","light":"#BFA6F9","dark":"#6036BF"},"favicon":"/favicon.svg","logo":{"light":"https://mintcdn.com/hopio/cq2ctXa-N8Jv0svA/logo/light.svg?fit=max\u0026auto=format\u0026n=cq2ctXa-N8Jv0svA\u0026q=85\u0026s=9a89c9116e891086ed4c6444069381ae","dark":"https://mintcdn.com/hopio/cq2ctXa-N8Jv0svA/logo/dark.svg?fit=max\u0026auto=format\u0026n=cq2ctXa-N8Jv0svA\u0026q=85\u0026s=5865ce776745941e9f171dfa11fbcfc1"},"navbar":{"primary":{"type":"button","label":"Console","href":"https://console.hop.io"}},"footer":{"socials":{"twitter":"https://twitter.com/joinhop","github":"https://github.com/hopinc","discord":"https://discord.gg/hop"}},"integrations":{"gtm":{"tagId":"GTM-PWWFBQW"}},"navigation":{"global":{"anchors":[{"anchor":"GitHub","href":"https://github.com/hopinc","icon":"github"},{"anchor":"Community","href":"https://discord.com/invite/hop","icon":"discord"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hopio","hasAudioNarration":false,"actualSubdomain":"hopio","customDomains":["docs.hop.io"],"gitSource":{"type":"github","owner":"hopinc","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a20c3444a41910615812085","collectionId":"0f4aced8-f80e-40f3-9f57-02b5250ed32c","schemaVersion":"v2"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a20c3444a41910615812085:success","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Documentation","count":50},{"language":"default","tag":"Other Products","count":17},{"language":"default","tag":"Ignite","count":15},{"language":"default","tag":"Channels","count":11},{"language":"default","tag":"Reference","count":10},{"language":"default","tag":"Pipe","count":6},{"language":"default","tag":"SDKs","count":6},{"language":"default","tag":"Language Support","count":5},{"language":"default","tag":"Getting Started","count":4},{"language":"default","tag":"CLI","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"other-products/channels/reference/react","slug":"/other-products/channels/reference/react","pageMetadata":{"title":"React Channels implementation","sidebarTitle":"React","description":"How to subscribe to Channel messages and state using the Hop React SDK","href":"/other-products/channels/reference/react"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How to subscribe to Channel messages and state using the Hop React SDK\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`usechannelmessage`,children:`useChannelMessage`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`useChannelMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`channelId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`eventName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`listener`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`): `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`void`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You can use this hook to subscribe to Channel message events in your React app.`}),`\n`,_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`This example assumes you have already initialized the `,_jsx(_components.a,{href:`/sdks/client/react`,children:`Hop React\nSDK`}),`.`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`23`,language:`jsx`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`jsx`,children:_jsxs(_components.code,{language:`jsx`,numberOfLines:`23`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`useChannelMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@onehop/react\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` channelId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"group_chat\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` default`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` MyComponent`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`chatMessages`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`setChatMessages`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` useState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([]);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // in this example, USER_MESSAGE is an event that you'd send to the channel from your backend`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` useChannelMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`channelId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USER_MESSAGE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // this will be called every time the USER_MESSAGE event is sent to this channel`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` setChatMessages`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`m`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`m`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`ul`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` {`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`chatMessages`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`map`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`m`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`li`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`b`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`m`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`author`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`b`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`m`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`li`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ))`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`ul`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` );`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`usereadchannelstate`,children:`useReadChannelState`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`useReadChannelState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`channelId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`): `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ChannelStateData`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You can use this hook to subscribe to Channel state in your React app.`}),`\n`,_jsx(Heading,{level:`3`,id:`hook-return-value`,children:`Hook Return Value`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`field`}),_jsx(_components.th,{children:`type`}),_jsx(_components.th,{children:`description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`state`}),_jsx(_components.td,{children:`?object`}),_jsx(_components.td,{children:`the channel state`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`error`}),_jsx(_components.td,{children:`?object`}),_jsx(_components.td,{children:`leap error (if failed to subscribe)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`subscription`}),_jsx(_components.td,{children:`enum`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`non_existent`}),`, `,_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`unavailable`}),`, or `,_jsx(_components.code,{children:`available`})]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`example-2`,children:`Example`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`This example assumes you have already initialized the `,_jsx(_components.a,{href:`/sdks/client/react`,children:`Hop React\nSDK`}),`.`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`jsx`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`jsx`,children:_jsxs(_components.code,{language:`jsx`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`useReadChannelState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@onehop/react\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` channelId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"weather\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` default`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` MyComponent`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` useReadChannelState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`channelId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // state is null until the client has connected to the channel`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Loading...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Temperature in London: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`london`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`?.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`temperature`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"React Channels implementation","sidebarTitle":"React","description":"How to subscribe to Channel messages and state using the Hop React SDK","href":"/other-products/channels/reference/react"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"useChannelMessage","slug":"usechannelmessage","depth":2,"children":[{"title":"Example","slug":"example","depth":3,"children":[]}]},{"title":"useReadChannelState","slug":"usereadchannelstate","depth":2,"children":[{"title":"Hook Return Value","slug":"hook-return-value","depth":3,"children":[]},{"title":"Example","slug":"example-2","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"hopio","siteName":"Hop","title":"React Channels implementation - Hop","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-06T22:44:39.802Z","originalFileLocation":"other-products/channels/reference/react.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"How to subscribe to Channel messages and state using the Hop React SDK\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hop\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"React Channels implementation - Hop\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to subscribe to Channel messages and state using the Hop React SDK\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hop\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hop.io/other-products/channels/reference/react\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hopio.mintlify.app/_mintlify/api/og/v2?division=Reference\u0026amp;title=React+Channels+implementation\u0026amp;description=How+to+subscribe+to+Channel+messages+and+state+using+the+Hop+React+SDK\u0026amp;theme=df3bd4a74e3c43891932b97a\u0026amp;signature=110ef8f6b904dba8ed5c401ebd0be23ec3afa2f0a76508aa3ffeadf53c055cab\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"React Channels implementation - Hop\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to subscribe to Channel messages and state using the Hop React SDK\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hopio.mintlify.app/_mintlify/api/og/v2?division=Reference\u0026amp;title=React+Channels+implementation\u0026amp;description=How+to+subscribe+to+Channel+messages+and+state+using+the+Hop+React+SDK\u0026amp;theme=df3bd4a74e3c43891932b97a\u0026amp;signature=110ef8f6b904dba8ed5c401ebd0be23ec3afa2f0a76508aa3ffeadf53c055cab\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hopio/X4tI8aJw6pD0WAgR/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hop\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#8F64F2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hop.io/other-products/channels/reference/react\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/other-products/channels/reference/react.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hop.io/#organization\",\"name\":\"Hop\",\"url\":\"https://docs.hop.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hopio/cq2ctXa-N8Jv0svA/logo/light.svg?fit=max\u0026auto=format\u0026n=cq2ctXa-N8Jv0svA\u0026q=85\u0026s=9a89c9116e891086ed4c6444069381ae\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hop.io#website\",\"name\":\"Hop\",\"url\":\"https://docs.hop.io\",\"publisher\":{\"@id\":\"https://docs.hop.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hop.io/other-products/channels/reference/react#webpage\",\"url\":\"https://docs.hop.io/other-products/channels/reference/react\",\"name\":\"React Channels implementation\",\"description\":\"How to subscribe to Channel messages and state using the Hop React SDK\",\"dateModified\":\"2026-01-06T22:44:39.802Z\",\"isPartOf\":{\"@id\":\"https://docs.hop.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hop.io/other-products/channels/reference/react#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hop.io/other-products/channels/reference/react#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Other Products\",\"item\":\"https://docs.hop.io/other-products/channels/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Channels\",\"item\":\"https://docs.hop.io/other-products/channels/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"React Channels implementation\",\"item\":\"https://docs.hop.io/other-products/channels/reference/react\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hop.io/other-products/channels/reference/react#article\",\"headline\":\"React Channels implementation\",\"name\":\"React Channels implementation\",\"description\":\"How to subscribe to Channel messages and state using the Hop React SDK\",\"url\":\"https://docs.hop.io/other-products/channels/reference/react\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hop.io/other-products/channels/reference/react#webpage\"},\"dateModified\":\"2026-01-06T22:44:39.802Z\",\"publisher\":{\"@id\":\"https://docs.hop.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hop.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hop\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hop","nav":{"global":{"anchors":[{"anchor":"GitHub","href":"https://github.com/hopinc","icon":"github"},{"anchor":"Community","href":"https://discord.com/invite/hop","icon":"discord"}]},"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/getting-started/introduction"},{"title":"Deploying to Hop","href":"/ignite/deploying"},{"group":"Quickstarts","pages":[{"title":"Node.js Express App","href":"/getting-started/quickstarts/express"},{"title":"Redis","href":"/getting-started/quickstarts/redis"},{"title":"Elixir Cluster","href":"/getting-started/quickstarts/elixir-cluster"}]}]},{"group":"CLI","pages":[{"title":"Overview","href":"/cli/overview"},{"title":"Hop CLI Completions","sidebarTitle":"Completions","href":"/cli/completions"},{"title":"Working in CI","sidebarTitle":"CI","href":"/cli/ci"}]},{"group":"Ignite","pages":[{"title":"Ignite","sidebarTitle":"Overview","href":"/ignite/overview"},{"title":"Deploying to Hop","href":"/ignite/deploying"},{"title":"Gateways","href":"/ignite/gateways"},{"title":"Private Networking","href":"/ignite/private-networking"},{"title":"Persistent Volumes","href":"/ignite/volumes"},{"title":"Health Checks","href":"/ignite/health-checks"},{"title":"Project Secrets","href":"/ignite/project-secrets"},{"title":"Images","href":"/ignite/images"},{"title":"Builds","href":"/ignite/builds"},{"title":"Port Forwarding","href":"/ignite/port-forwarding"},{"group":"Language Support","pages":[{"title":"Node","href":"/ignite/languages/node"},{"title":"Python","href":"/ignite/languages/python"},{"title":"Elixir","href":"/ignite/languages/elixir"},{"title":"Rust","href":"/ignite/languages/rust"},{"title":"Go","href":"/ignite/languages/go"}]}]},{"group":"Reference","pages":[{"title":"Hop Regions","sidebarTitle":"Regions","href":"/reference/regions"},{"title":"Webhooks","href":"/reference/webhooks"},{"title":"REST API","href":"/reference/rest-api"},{"title":"Project Tokens","href":"/reference/project-tokens"},{"title":"Billing Overview","sidebarTitle":"Billing \u0026 Free Trial","href":"/reference/billing"}]},{"group":"SDKs","pages":[{"title":"SDKs","sidebarTitle":"Overview","href":"/sdks/overview"},{"group":"Client Side","pages":[{"title":"JS Client SDK","sidebarTitle":"JavaScript","href":"/sdks/client/js"},{"title":"React SDK","sidebarTitle":"React","href":"/sdks/client/react"}]},{"group":"Server Side","pages":[{"title":"Server-side JS SDK","sidebarTitle":"JavaScript","href":"/sdks/server/js"},{"group":"Go","pages":[{"title":"Server Side Go API Client","href":"/sdks/server/go-api"},{"title":"Server Side Go Leap Client","href":"/sdks/server/go-leap"}]}]}]},{"group":"Other Products","pages":[{"group":"Channels","pages":[{"title":"Overview","href":"/other-products/channels/overview"},{"title":"Channel State","href":"/other-products/channels/channel-state"},{"title":"Tokens","description":null,"href":"/other-products/channels/tokens"},{"group":"Reference","pages":[{"title":"React Channels implementation","sidebarTitle":"React","href":"/other-products/channels/reference/react"},{"title":"Creating Channels","description":"You can create channels manually (through the Hop Console/CLI) or through our SDKs and API.","href":"/other-products/channels/reference/creating-channels"},{"title":"Updating Channel State","sidebarTitle":"Channel State","href":"/other-products/channels/reference/updating-channel-state"},{"title":"Sending Messages to Hop Channels","sidebarTitle":"Sending Messages","href":"/other-products/channels/reference/sending-messages"},{"title":"Channel Stats","href":"/other-products/channels/reference/channel-stats"}]},{"group":"Internals","pages":[{"title":"Leap \u0026 Leap Edge","sidebarTitle":"Leap","href":"/other-products/channels/internals/leap"},{"title":"Payloads","href":"/other-products/channels/internals/payloads"},{"title":"Atlas Protocol","href":"/other-products/channels/internals/atlas-protocol"}]}]},{"group":"Pipe","pages":[{"title":"Pipe Overview","sidebarTitle":"Overview","href":"/other-products/pipe/overview"},{"title":"Pipe Getting Started","sidebarTitle":"Getting Started","href":"/other-products/pipe/getting-started"},{"title":"Pipe Client Implementation","sidebarTitle":"Client Implementation","href":"/other-products/pipe/client-implementation"},{"title":"Streaming to Pipe","href":"/other-products/pipe/streaming-to-pipe"},{"group":"Protocols","pages":[{"title":"Low-latency HLS (LLHLS)","sidebarTitle":"LLHLS","href":"/other-products/pipe/llhls"}]},{"group":"API Reference","pages":[{"title":"Creating a Pipe Room","sidebarTitle":"Room","href":"/other-products/pipe/room"}]}]}]}]}]},"title":"React Channels implementation - Hop","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}