my-click-to-component
v1.2.2
Published
[![npm](https://img.shields.io/npm/v/click-to-react-component)](https://www.npmjs.com/package/click-to-react-component) [![Release](https://github.com/ericclemmons/click-to-component/actions/workflows/release.yml/badge.svg)](https://github.com/ericclemmon
Downloads
2
Readme
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
, andlineNumber
Works with frameworks like Next.js, Create React App, & Vite that use @babel/plugin-transform-react-jsx-source
Supports
vscode
&vscode-insiders
' URL handlingAutomatically tree-shaken from
production
buildsKeyboard navigation in context menu (e.g. ←, →, ⏎)
More context & faster than using React DevTools:
Installation
npm install click-to-react-component
pnpm add click-to-react-component
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
+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>
);
+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} />
</>
)
+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>
);
npm install @babel/plugin-transform-react-jsx-source
babel.config.js:
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
plugins: [
...(process.env.BABEL_ENV === 'development'
? ['@babel/plugin-transform-react-jsx-source']
: []),
],
};
src/theme/Root.js:
import { ClickToComponent } from 'click-to-react-component';
import React from 'react';
// Default implementation, that you can customize
export default function Root({ children }) {
return (
<>
<ClickToComponent />
{children}
</>
);
}
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:
cd apps/cra
pnpm start
cd apps/next
pnpm dev