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>&nbsp;&nbsp;[![Chat
 with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)&
 nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](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]

Reply via email to