From abc52da7bb19647ff3bfba59508ac57aa37135b2 Mon Sep 17 00:00:00 2001 From: Zack Radisic <56137411+zackradisic@users.noreply.github.com> Date: Mon, 21 Jul 2025 13:31:51 -0700 Subject: [PATCH] add check for React.useState --- src/js_parser.zig | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/js_parser.zig b/src/js_parser.zig index 6bc4f2d803..7b97405ad7 100644 --- a/src/js_parser.zig +++ b/src/js_parser.zig @@ -17528,7 +17528,16 @@ fn NewParser_( // Why? Because we *don't* want to check for uses of // `useState` _inside_ React, and we know React uses // commonjs so it will never be `.e_import_identifier`. - e_.target.data == .e_import_identifier) { + check_for_usestate: { + if (e_.target.data == .e_import_identifier) break :check_for_usestate true; + // Also check for `React.useState(...)` + if (e_.target.data == .e_dot and e_.target.data.e_dot.target.data == .e_import_identifier) { + const id = e_.target.data.e_dot.target.data.e_import_identifier; + const name = p.symbols.items[id.ref.innerIndex()].original_name; + break :check_for_usestate bun.strings.eqlComptime(name, "React"); + } + break :check_for_usestate false; + }) { bun.assert(p.options.features.server_components.isServerSide()); if (bun.strings.eqlComptime(original_name, "useState")) { p.log.addError(