# dev-plugins
**Repository Path**: mirrors_bamlab/dev-plugins
## Basic Information
- **Project Name**: dev-plugins
- **Description**: Out-of-tree Expo devtools plugins for packages that haven't adopted the Expo devtools plugin system yet.
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-05
- **Last Updated**: 2026-05-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DevTools Plugins
- This repo is a collection of Expo DevTools Plugins maintained on the BamLab repository
- This repo is a fork from the [expo/dev-plugin](https://github.com/expo/dev-plugins) repository
## @bam.tech/react-navigation-visualizer-dev-plugin
A Visualization Tool based on Expo DevTools Plugin for React Navigation.
### Installation
#### Add the package to your project
```bash
npx expo install @bam.tech/react-navigation-visualizer-dev-plugin
```
### Usage
#### Using with `react-navigation`
##### Integrate `react-navigation` with the DevTool hook
```jsx
import { useNavigationContainerRef } from '@react-navigation/native';
import { useReactNavigationDevTools } from '@bam.tech/react-navigation-visualizer-dev-plugin';
export default function App() {
const navigationRef = useNavigationContainerRef();
useReactNavigationDevTools(navigationRef);
return {/* ... */};
}
```
#### Using with `expo-router`
When using `expo-router`, integrate the DevTool in your main `_layout.tsx` file. You can import `useNavigationContainerRef` directly from `expo-router` and pass it to `useReactNavigationDevTools`:
```tsx
import { useNavigationContainerRef } from 'expo-router';
import { useReactNavigationDevTools } from '@bam.tech/react-navigation-visualizer-dev-plugin';
export default function RootLayout() {
const navigationRef = useNavigationContainerRef();
useReactNavigationDevTools(navigationRef);
return ;
}
```
In this case, `expo-router` automatically manages the navigation container, so you just need to add the DevTool setup in your layout component.
### What to do with this plugin ?
#### Launch in Metro
In the metro launcher, type Shift+M to open the dev tools menu, and select `@bam.tech/react-navigation-visualizer-dev-plugin`
The visualization tool is available under the `Stack Visualization` section

#### What's in my stack ?
The idea of this plugin is to show your current navigation state, and its evolution during a user's journey through the app.
Three types of elements are represented :
- The stack navigators

- The tab navigators

- The screens

You can see all consecutive navigation states (recorded when the dev plugin is opened), and you can also collapse stacks if needed by clicking them.
# Contributing
## Example App
The [example app](/apps/example) is an [Expo Router](https://docs.expo.dev/routing/introduction/) app that provides test cases for plugins
- Expo Router is based on React Navigation, so you can just test `@bam.tech/react-navigation-visualizer-dev-plugin` from visiting different screens from the app.
### How to run the example app
```sh
$ git clone https://github.com/bamlab/dev-plugins.git
$ cd dev-plugins
$ cd apps/example
$ bun run ios
$ bun run android
```