diff --git a/src/harness/unittests/organizeImports.ts b/src/harness/unittests/organizeImports.ts
index 94f99856777..61b4e240d9b 100644
--- a/src/harness/unittests/organizeImports.ts
+++ b/src/harness/unittests/organizeImports.ts
@@ -513,6 +513,26 @@ D();
import { React, Other } from "react";
;
+`,
+ },
+ reactLibFile);
+
+ testOrganizeImports("JsxFactoryUnusedJsx",
+ {
+ path: "/test.jsx",
+ content: `
+import { React, Other } from "react";
+`,
+ },
+ reactLibFile);
+
+ // Note: Since the file extension does not end with "x", the jsx compiler option
+ // will not be enabled. The import should be retained regardless.
+ testOrganizeImports("JsxFactoryUnusedJs",
+ {
+ path: "/test.js",
+ content: `
+import { React, Other } from "react";
`,
},
reactLibFile);
diff --git a/src/services/organizeImports.ts b/src/services/organizeImports.ts
index 99bac64973f..30f7f1584a4 100644
--- a/src/services/organizeImports.ts
+++ b/src/services/organizeImports.ts
@@ -92,7 +92,7 @@ namespace ts.OrganizeImports {
function removeUnusedImports(oldImports: ReadonlyArray, sourceFile: SourceFile, program: Program) {
const typeChecker = program.getTypeChecker();
const jsxNamespace = typeChecker.getJsxNamespace();
- const jsxContext = sourceFile.languageVariant === LanguageVariant.JSX && program.getCompilerOptions().jsx;
+ const jsxContext = sourceFile.languageVariant === LanguageVariant.JSX;
const usedImports: ImportDeclaration[] = [];
diff --git a/tests/baselines/reference/organizeImports/JsxFactoryUnusedJs.ts b/tests/baselines/reference/organizeImports/JsxFactoryUnusedJs.ts
new file mode 100644
index 00000000000..6a97e7f660a
--- /dev/null
+++ b/tests/baselines/reference/organizeImports/JsxFactoryUnusedJs.ts
@@ -0,0 +1,7 @@
+// ==ORIGINAL==
+
+import { React, Other } from "react";
+
+// ==ORGANIZED==
+
+import { React } from "react";
diff --git a/tests/baselines/reference/organizeImports/JsxFactoryUnusedJsx.ts b/tests/baselines/reference/organizeImports/JsxFactoryUnusedJsx.ts
new file mode 100644
index 00000000000..6a97e7f660a
--- /dev/null
+++ b/tests/baselines/reference/organizeImports/JsxFactoryUnusedJsx.ts
@@ -0,0 +1,7 @@
+// ==ORIGINAL==
+
+import { React, Other } from "react";
+
+// ==ORGANIZED==
+
+import { React } from "react";