MCPcopy Index your code
hub / github.com/React-Sight/React-Sight

github.com/React-Sight/React-Sight @v1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.0 ↗ · + Follow
38 symbols 89 edges 23 files 4 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Coverage Status Build Status Chrome Web Store Chrome Web Store License: MIT

React Sight

React Sight is a live view of the component hierarchy tree of your React application with support for React Router and Redux. Now with support for Firefox!

Note: project is barely* maintained. If you would like to maintain, feel free to submit PRs or reach out to @davidcsally

Set Up | Install From the Chrome Store

  1. Make sure you've added React Dev Tools to Chrome.
  2. Install React Sight from the Chrome web store
  3. If you are running local file URLs, make sure to enable "Allow access to file URLs" in the extension settings for both React Dev Tools and React Sight
  4. Run your React application, or open (almost!) any website running React!
  5. Open Chrome Developer Tools (cmd+opt+j) -> React Sight panel

Building Your Own Version

If you'd like to build your own version of React Sight from the source code, follow these steps:

  1. Clone the repo and run yarn install or npm install to install dependencies.
  2. Use yarn build to generate the build.
  3. Open Chrome and go to the extensions page. Toggle developer mode in the upper right corner if necessary, then click 'Load unpacked'.
  4. Load the folder ~/ReactSight/build/chrome-ext

If you have any additional questions send us a message at reactsight@gmail.com :)

Firefox

If you are using fox, follow steps 1-3 for building the extension locally. Then, to load the extension:

  1. Load the extension as a "Temporary Extension" by navigating to: about:debugging#/runtime/this-firefox.
  2. Click "Load Temporary Add-on"
  3. Load the file ~/ReactSight/build/chrome-ext/manifest.json. In Firefox, you load the extension's manifest instead of the extension's folder.

Usage

Hover over nodes to see their state and props in the side panel.

Hide DOM elements, Redux components, and Router components with the built in filters, so that you can focus only on the components you've written

Zoom in by double clicking, and zoom out by shift + double clicking (mousewheel zoom coming soon!)

Why?

We built React Sight because there are no tools on the market that give you a visual representation of the structure of your App. When we were developing our own projects, we wished we had a way to see how everything was structured.

We wanted React Sight to be simple to use, which is why all you have to do is install a Chrome extension. No modifying your existing code!

How Does It Work?

When the dev tools are opened, React-Sight searches for React renderer's, and patches the render to collect data on each state change.

Data is posted to the Window, where it is read by Chrome's background.js window, and is then relayed to React-Sight's devTools page.

The raw data is then processed and fed to D3, where it is displayed to the user.

Troubleshooting

'React not found' or no data:

Sometimes React-Sight doesn't get a snapshot of the data at load, triggering a setState ussually fixes this

Maximum call stack exceeded and other console errors:

This is a bug where the parsing functions get stuck in an infinite loop. We are working on a fix.

Testing

Run yarn test to run the test suite. Tests are run using jest.

Contributing

Found a bug? Have a suggestion? Want to make React-Sight better?

Please submit issues/pull requests if you have feedback or would like to contribute. If you're interested in joining the React Sight team as a contributor, feel free to message one of us directly, or just start submitting pull requests!

Authors

David C Sally (https://github.com/davidcsally)

Grant Kang (https://github.com/Grant05)

William He (https://github.com/hewilliam)

Contact

Like our app? Found a bug?

Tell us what you think!

reactsight@gmail.com

Visit us at www.reactsight.com

Roadmap

Here's our top development priorities

  1. Better support across on React 16+.
  2. More consistent detection of root nodes when React Sight is opened.
  3. Support for multiple React Applications / mounting nodes, currently it picks the first React application in the renderers list.
  4. More robust error handling and guard blocks for extracting state, props, and store
  5. Logging / Debugging mode for development, feedback, and error reporting
  6. Performance and stability updates
  7. UX improvements
  8. Improved documentation
  9. Hook into the react-devtools-backend so that we don't have to reimplement it :)

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Core symbols most depended-on inside this repo

drawStore
called by 5
chrome-ext/frontend/store-panel.js
getName
called by 5
chrome-ext/backend/react-15-hook.js
drawBreadcrumbs
called by 4
chrome-ext/frontend/breadcrumb.js
update
called by 4
chrome-ext/frontend/drawChart.js
getId
called by 4
chrome-ext/backend/react-15-hook.js
diagonal
called by 3
chrome-ext/frontend/drawChart.js
filterRedux
called by 3
chrome-ext/frontend/filters.js
filterRouter
called by 3
chrome-ext/frontend/filters.js

Shape

Function 38

Languages

TypeScript100%

Modules by API surface

chrome-ext/backend/react-15-hook.js11 symbols
chrome-ext/frontend/drawChart.js7 symbols
chrome-ext/frontend/filters.js6 symbols
chrome-ext/frontend/devtools.js3 symbols
chrome-ext/backend/fiber-hook.js3 symbols
chrome-ext/frontend/breadcrumb.js2 symbols
chrome-ext/frontend/store-panel.js1 symbols
chrome-ext/frontend/state-props-panel.js1 symbols
chrome-ext/frontend/loader.js1 symbols
chrome-ext/content-script.js1 symbols
chrome-ext/background.js1 symbols
chrome-ext/backend/common.js1 symbols

For agents

$ claude mcp add React-Sight \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page