From bd75c5e04bb7966b8a4342188917065e1188e6a0 Mon Sep 17 00:00:00 2001 From: Joe Freeman Date: Sat, 24 Jan 2026 19:38:46 +0000 Subject: [PATCH 1/4] Update dependency --- client_react/package-lock.json | 22 +++++++++++----------- client_react/package.json | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/client_react/package-lock.json b/client_react/package-lock.json index b087460..9a2f12f 100644 --- a/client_react/package-lock.json +++ b/client_react/package-lock.json @@ -1,23 +1,23 @@ { "name": "@topical/react", - "version": "0.3.1", + "version": "0.3.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@topical/react", - "version": "0.3.1", + "version": "0.3.4", "license": "Apache-2.0", "dependencies": { - "@topical/core": "^0.3.0" + "@topical/core": "^0.3.1" }, "devDependencies": { "@biomejs/biome": "^2.3.11", - "@types/react": "^18.0.26", + "@types/react": "^18.0.26 || ^19.0.0", "typescript": "^5.9.3" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.2.0 || ^19.0.0" } }, "node_modules/@biomejs/biome": { @@ -184,9 +184,9 @@ } }, "node_modules/@topical/core": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@topical/core/-/core-0.3.0.tgz", - "integrity": "sha512-H/4nF6TfI9W2fUiDUmL8rtxCXNuTwcoAIJMPsjY/SuMFowCwS0RQr3543VWOMsmoe8hnHCKt//VltuwcBJNMxg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@topical/core/-/core-0.3.1.tgz", + "integrity": "sha512-T4ovU46XBf/iAah6XXdWo8VFkWVHQNTHHPIPlrWHa9rmXR59nw6VdkxmeBhcwlBLsJ/6OFqDFkVb5DhoXskADQ==", "license": "Apache-2.0" }, "node_modules/@types/prop-types": { @@ -337,9 +337,9 @@ "optional": true }, "@topical/core": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@topical/core/-/core-0.3.0.tgz", - "integrity": "sha512-H/4nF6TfI9W2fUiDUmL8rtxCXNuTwcoAIJMPsjY/SuMFowCwS0RQr3543VWOMsmoe8hnHCKt//VltuwcBJNMxg==" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@topical/core/-/core-0.3.1.tgz", + "integrity": "sha512-T4ovU46XBf/iAah6XXdWo8VFkWVHQNTHHPIPlrWHa9rmXR59nw6VdkxmeBhcwlBLsJ/6OFqDFkVb5DhoXskADQ==" }, "@types/prop-types": { "version": "15.7.5", diff --git a/client_react/package.json b/client_react/package.json index 18908b5..4407922 100644 --- a/client_react/package.json +++ b/client_react/package.json @@ -33,6 +33,6 @@ "typescript": "^5.9.3" }, "dependencies": { - "@topical/core": "^0.3.0" + "@topical/core": "^0.3.1" } } From c6dd935408cf0020e8f19ac6d0512c456e3c9b4e Mon Sep 17 00:00:00 2001 From: Joe Freeman Date: Sat, 24 Jan 2026 19:39:09 +0000 Subject: [PATCH 2/4] Update React client to support overridding the WebSocket construction --- client_react/src/index.ts | 1 + client_react/src/provider.ts | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/client_react/src/index.ts b/client_react/src/index.ts index b9233d0..b20183a 100644 --- a/client_react/src/index.ts +++ b/client_react/src/index.ts @@ -1,3 +1,4 @@ export { default as SocketProvider } from "./provider"; export { default as useSocket } from "./useSocket"; export { default as useTopic } from "./useTopic"; +export type { WebSocketFactory } from "@topical/core"; diff --git a/client_react/src/provider.ts b/client_react/src/provider.ts index 0901504..13eec7d 100644 --- a/client_react/src/provider.ts +++ b/client_react/src/provider.ts @@ -1,4 +1,4 @@ -import { Socket } from "@topical/core"; +import { Socket, type WebSocketFactory } from "@topical/core"; import { createContext, createElement, @@ -11,17 +11,22 @@ export const Context = createContext(undefined); type ProviderProps = { url: string; + createWebSocket?: WebSocketFactory; children: ReactNode; }; -export default function Provider({ url, children }: ProviderProps) { +export default function Provider({ + url, + createWebSocket, + children, +}: ProviderProps) { const [socket, setSocket] = useState(); useEffect(() => { - const socket = new Socket(url); + const socket = new Socket(url, createWebSocket); setSocket(socket); return () => { socket.close(); }; - }, [url]); + }, [url, createWebSocket]); return createElement(Context.Provider, { value: socket }, children); } From 23d7f5a9ca1a474f295b721bc4789dd62a9326b1 Mon Sep 17 00:00:00 2001 From: Joe Freeman Date: Sat, 24 Jan 2026 19:41:35 +0000 Subject: [PATCH 3/4] Fix linting issue --- client_react/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client_react/src/index.ts b/client_react/src/index.ts index b20183a..0ca9e2d 100644 --- a/client_react/src/index.ts +++ b/client_react/src/index.ts @@ -1,4 +1,4 @@ +export type { WebSocketFactory } from "@topical/core"; export { default as SocketProvider } from "./provider"; export { default as useSocket } from "./useSocket"; export { default as useTopic } from "./useTopic"; -export type { WebSocketFactory } from "@topical/core"; From 4d86f8dc562a6911a404d3602ebc3ec72301bcf4 Mon Sep 17 00:00:00 2001 From: Joe Freeman Date: Sat, 24 Jan 2026 19:40:36 +0000 Subject: [PATCH 4/4] Update changelog and version --- client_react/CHANGELOG.md | 6 ++++++ client_react/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/client_react/CHANGELOG.md b/client_react/CHANGELOG.md index daa3f1b..a8626ad 100644 --- a/client_react/CHANGELOG.md +++ b/client_react/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## 0.3.5 + +### Features + +- Adds optional `createWebSocket` prop to `SocketProvider` for customizing WebSocket creation. + ## 0.3.4 ### Improvements diff --git a/client_react/package.json b/client_react/package.json index 4407922..8b2850a 100644 --- a/client_react/package.json +++ b/client_react/package.json @@ -1,6 +1,6 @@ { "name": "@topical/react", - "version": "0.3.4", + "version": "0.3.5", "description": "React Topical client.", "main": "dist/index.js", "typings": "dist/index.d.ts",