From 600eb308e248601a1cc6828828c149bd8b36a395 Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Tue, 25 Jun 2024 20:29:07 +0200 Subject: [PATCH] Throw error when auto-tracking with React 19 --- .changeset/sharp-rockets-march.md | 5 +++++ packages/react/runtime/src/auto.ts | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/sharp-rockets-march.md diff --git a/.changeset/sharp-rockets-march.md b/.changeset/sharp-rockets-march.md new file mode 100644 index 000000000..83afdaf8c --- /dev/null +++ b/.changeset/sharp-rockets-march.md @@ -0,0 +1,5 @@ +--- +"@preact/signals-react": patch +--- + +Throw an error when auto-tracking is used with React 19 diff --git a/packages/react/runtime/src/auto.ts b/packages/react/runtime/src/auto.ts index 96f20b646..5c56c027e 100644 --- a/packages/react/runtime/src/auto.ts +++ b/packages/react/runtime/src/auto.ts @@ -2,6 +2,7 @@ import { // @ts-ignore-next-line // eslint-disable-next-line @typescript-eslint/no-unused-vars __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as ReactInternals, + version as reactVersion, } from "react"; import React from "react"; import jsxRuntime from "react/jsx-runtime"; @@ -378,6 +379,12 @@ export function installJSXHooks() { } export function installAutoSignalTracking() { + const [major] = reactVersion.split(".").map(Number); + if (major >= 19) { + throw new Error( + "Automatic signals tracking is not supported in React 19 and later, try the Babel plugin instead https://github.com/preactjs/signals/tree/main/packages/react-transform#signals-react-transform." + ); + } installCurrentDispatcherHook(); installJSXHooks(); }