Tuesday, 17 May, 2022 UTC


Summary

Option+Click a Component in the browser to instantly goto the source in your editor.
Features
  • Option+Click opens the immediate Component’s source
  • Option+Right-click opens a context menu with the parent Components’ props, fileName, columnNumber, and lineNumber
  • Works with frameworks like Next.js, Create React App, & Vite that use @babel/plugin-transform-react-jsx-source
  • Supports vscode & vscode-insiders‘ URL handling
  • Automatically tree-shaken from production builds
  • Keyboard navigation in context menu (e.g. ←, →, ⏎)
  • More context & faster than using React DevTools:
Installation npm
npm install click-to-react-component
pnpm
pnpm add click-to-react-component
yarn
yarn add click-to-react-component
Even though click-to-react-component is added to dependencies, tree-shaking will remove click-to-react-component from production builds.
Usage Create React App
/src/index.js
+import { ClickToComponent } from 'click-to-react-component';
 import React from 'react';
 import ReactDOM from 'react-dom/client';
 import './index.css';
@@ -8,7 +7,6 @@ import reportWebVitals from './reportWebVitals';
 const root = ReactDOM.createRoot(document.getElementById('root'));
 root.render(
   <React.StrictMode>
+    <ClickToComponent />
     <App />
   </React.StrictMode>
 );
Next.js
pages/_app.tsx
+import { ClickToComponent } from 'click-to-react-component'
 import type { AppProps } from 'next/app'
 import '../styles/globals.css'

 function MyApp({ Component, pageProps }: AppProps) {
   return (
     <>
+      <ClickToComponent />
       <Component {...pageProps} />
     </>
   )
Vite
+import { ClickToComponent } from "click-to-react-component";
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import "./index.css";

ReactDOM.createRoot(document.getElementById("root")!).render(
  <React.StrictMode>
    <App />
+   <ClickToComponent />
  </React.StrictMode>
);

editor

By default, clicking will default editor to vscode.
If, like me, you use vscode-insiders, you can set editor explicitly:
-<ClickToComponent />
+<ClickToComponent editor="vscode-insiders" />
Run Locally
Clone the project
gh repo clone ericclemmons/click-to-component
Go to the project directory
cd click-to-component
Install dependencies
pnpm install
Run one of the examples:
Create React App
cd apps/cra
pnpm start
Next.js
cd apps/next
pnpm dev
GitHub
View Github