GitHub user dosubot[bot] added a comment to the discussion: React hooks
<!-- Answer --> Superset uses React Router (`react-router-dom`) for navigation in its React frontend. The main hooks you'll see are: - [`useLocation`](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/views/App.tsx): used in `App.tsx` (inside `LocationPathnameLogger`) to track and log route changes for SPA navigation. - [`useParams`](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/pages/Dashboard/index.tsx): used in page components like Dashboard and AnnotationList to extract route parameters from the URL. - [`useHistory`](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/pages/AnnotationList/index.tsx): imported in some components, but only used to check if history is available (not for navigation actions). Routing is set up in [`src/views/App.tsx`](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/views/App.tsx), where the app is wrapped in `<BrowserRouter>`, and routes are mapped using `<Switch>` and `<Route>`. The actual list of routes and their components is defined in [`src/views/routes.tsx`](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/views/routes.tsx). There are no custom navigation hooks or wrappersānavigation is handled using standard React Router hooks and components. For client-side navigation in the UI, Superset uses the `<Link>` component from `react-router-dom` when history is available. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/c54a84a0-7840-47df-a3c6-985aab534ae0?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/c54a84a0-7840-47df-a3c6-985aab534ae0?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/c54a84a0-7840-47df-a3c6-985aab534ae0?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/c54a84a0-7840-47df-a3c6-985aab534ae0?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/c54a84a0-7840-47df-a3c6-985aab534ae0?feedback_type=hallucination) | [Report š](https://app.dosu.dev/response-feedback/c54a84a0-7840-47df-a3c6-985aab534ae0?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/c54a84a0-7840-47df-a3c6-985aab534ae0?feedback_type=other)</sup> [](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)& nbsp;[](https://go.dosu.dev/discord-bot) [](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/35907) GitHub link: https://github.com/apache/superset/discussions/35907#discussioncomment-14825536 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
