# react-next to react component moves
If the v7 component implementation is in `react-internal` (most components), the `react-next` implementation should be moved to `react-internal` (NOT `react`). In the steps, `react(-internal)` means whichever of the two packages is appropriate for your component.
Full steps:
1. Move the component code and tests from react-next to `react(-internal)`. Steps:
1. Find where the v7 component is currently located (either `react-internal` or `react`) and delete the whole folder `react(-internal)/src/components/ComponentName`.
2. Move the whole folder `react-next/src/components/ComponentName` to `react(-internal)`
3. Update any `react-next` or `react` imports in the moved code to relative imports. If it's in `react-internal` also change those to relative imports. (A few things must still be deep-imported from react-internal; we'll fix this later.)
2. Update the component's root file in react-next (e.g. `react-next/src/Fabric.ts`) to re-export from `@fluentui/react/lib/ComponentName`
3. Delete any `*Next` perf-tests or vr-tests for the component
4. Delete `react-examples/src/react-next/ComponentName/docs` (they should be exact duplicates; even if they're not, the react versions are more likely to be correct)
5. Compare the examples and .doc.tsx in `react-examples/src/react-next/ComponentName` with the `react` versions. If the example names and content appear unchanged you can just delete the react-next versions. Otherwise copy over the moved examples to the react folder (fixing imports to be from react), and delete any remaining react-next example/doc files.
- Note: Even if the component is in `react-internal`, the examples should be under `react-examples/src/react` and import from `@fluentui/react`
7. Update snapshots and API in `react(-internal)` and `react-next`
In the PR, be sure to look at:
- Perf test: is the new implementation slower?
- Screener: any visual regressions?
- Bundle size (not sure if it will be accurate until all components move)
| Component | Assignee | PR/notes |
| ------------------- | --------- | -------- |
| Callout | Jon | [done](https://github.com/microsoft/fluentui/pull/15455) |
| ChoiceGroup | Elizabeth | [done](https://github.com/microsoft/fluentui/pull/15387) |
| Coachmark | Elizabeth | [done](https://github.com/microsoft/fluentui/pull/15400) |
| ComboBox + Autofill | Jon | [done](https://github.com/microsoft/fluentui/pull/15490)|
| ContextualMenu | Jon | [done](https://github.com/microsoft/fluentui/pull/15448) |
| Dropdown | Jon | [done](https://github.com/microsoft/fluentui/pull/15500) |
| Fabric | Tomi | [done](https://github.com/microsoft/fluentui/pull/15388) |
| FloatingPicker/ExtendedPicker | Jon | [done](https://github.com/microsoft/fluentui/pull/15458) |
| FocusTrapZone | Mak | [done](https://github.com/microsoft/fluentui/pull/15368) |
| Image | Tomi | [done](https://github.com/microsoft/fluentui/pull/15367) |
| Layer | Caleb | [done](https://github.com/microsoft/fluentui/pull/15481) |
| MessageBar | Caleb | [done](https://github.com/microsoft/fluentui/pull/15393) |
| OverflowSet | Caleb | [done](https://github.com/microsoft/fluentui/pull/15389) |
| Persona | Jon | [done](https://github.com/microsoft/fluentui/pull/15386) |
| Popup | Mak | [done](https://github.com/microsoft/fluentui/pull/15436) |
| Rating | Elizabeth | [done](https://github.com/microsoft/fluentui/pull/15398) |
| ResizeGroup | Elizabeth | [done](https://github.com/microsoft/fluentui/pull/15401) |
| SearchBox | Caleb | [done](https://github.com/microsoft/fluentui/pull/15385) |
| SelectedItemsList | Caleb | [done](https://github.com/microsoft/fluentui/pull/15430) |
| Shimmer | Caleb | [done](https://github.com/microsoft/fluentui/pull/15407) |
| SpinButton | Caleb | [done](https://github.com/microsoft/fluentui/pull/15408) |
| SwatchColorPicker | Caleb | [done](https://github.com/microsoft/fluentui/pull/15373) |
| TextField | Elizabeth | [done](https://github.com/microsoft/fluentui/pull/15370) |
Ignore/delete react-next versions due to not yet converted:
- Breadcrumb (done)
- Modal (done)
- Keytip
### Other table which didn't turn out to be very useful
| Component | Uses other affected components |
| --------- | --------------- |
| Callout | Popup, Layer |
| Coachmark | FocusTrapZone, Layer |
| ComboBox + Autofill | Callout |
| ContextualMenu | Callout |
| Dropdown | Callout, Fabric, FocusTrapZone, Layer, Popup |
| ExtendedPicker | FloatingPicker, Persona, SelectedItemsList |
| FloatingPicker | Persona |
| Keytip | Callout, ContextualMenu |
| Layer | Fabric |
| Rating | Image |
| SelectedItemsList | FloatingPicker, Persona, ContextualMenu |
| SpinButton | Image |
| TeachingBubble | Callout, FocusTrapZone, Image |