From d221e8962b7d9d2e3e2c28b998128b65976dc147 Mon Sep 17 00:00:00 2001
From: Masen Furer <m_github@0x26.net>
Date: Fri, 21 Feb 2025 12:59:13 -0800
Subject: [PATCH] Override `react-is@19.0.0` for recharts compatibility

See https://github.com/recharts/recharts/issues/4558 for details.
---
 reflex/.templates/jinja/web/package.json.jinja2 | 8 +++++++-
 reflex/constants/installer.py                   | 4 ++++
 reflex/utils/prerequisites.py                   | 1 +
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/reflex/.templates/jinja/web/package.json.jinja2 b/reflex/.templates/jinja/web/package.json.jinja2
index 781f85c30..526f4912a 100644
--- a/reflex/.templates/jinja/web/package.json.jinja2
+++ b/reflex/.templates/jinja/web/package.json.jinja2
@@ -15,7 +15,13 @@
   "devDependencies": {
     {% for package, version in dev_dependencies.items() %}
     "{{ package }}": "{{ version }}"{% if not loop.last %},{% endif %}
-    
+
+    {% endfor %}
+  },
+  "overrides": {
+    {% for package, version in overrides.items() %}
+    "{{ package }}": "{{ version }}"{% if not loop.last %},{% endif %}
+
     {% endfor %}
   }
 }
\ No newline at end of file
diff --git a/reflex/constants/installer.py b/reflex/constants/installer.py
index ace83c59f..baad18f48 100644
--- a/reflex/constants/installer.py
+++ b/reflex/constants/installer.py
@@ -195,3 +195,7 @@ class PackageJson(SimpleNamespace):
         "postcss": "8.5.1",
         "postcss-import": "16.1.0",
     }
+    OVERRIDES = {
+        # This should always match the `react` version in DEPENDENCIES for recharts compatibility.
+        "react-is": "19.0.0"
+    }
diff --git a/reflex/utils/prerequisites.py b/reflex/utils/prerequisites.py
index b5987f4e8..8afa706be 100644
--- a/reflex/utils/prerequisites.py
+++ b/reflex/utils/prerequisites.py
@@ -846,6 +846,7 @@ def _compile_package_json():
         },
         dependencies=constants.PackageJson.DEPENDENCIES,
         dev_dependencies=constants.PackageJson.DEV_DEPENDENCIES,
+        overrides=constants.PackageJson.OVERRIDES,
     )