Comments (7)
Hi!
Following up on this issue:
You can programatically navigate by using the onFollow
property in the SideNavigation (which is fired when an anchor is clicked) and onItemClick
in the TopNavigation component.
For example:
import { navigate } from "gatsby"
<SideNavigation
onFollow={(event) => {
event.preventDefault();
navigate(event.href);
}}
/>
This should still allow Gatsby to use the linking enhancement features that you mentioned (preloading, prefetching).
from components.
Simply allowing value: <Link href="/page2"></Link>
as the OP suggests does not work, because we need to apply additional styles for hover and active states.
Applying styles like .side-navigation a {...}
is unsafe because we do not know what is going on inside react-router library. You may even use a different routing library after all. We cannot make any assumptions what is inside that <Link>
This leaves us with the current onFollow={event => { event.preventDefault(); navigate(event.href); }}
. May look a little verbose, but it allows us to not worry about every new router version, because everything works same way as before.
If you want us to prioritise this feature request, it needs some solid reasons, not just aesthetic preferences
from components.
Hey,
thank you for reaching out and bringing this use case to our attention.
We currently don’t support using a custom component as a side navigation item. Allowing this does seem like a sensible addition to the side navigation component, however we don’t have any plans for making this change at the moment.
I will keep this issue open to collect any additional feedback or use cases.
Thanks!
RC
from components.
Not directly related to this but I have a use case where I'd like to be able to disable links in the SideNavigation.
Further to the above I'm using Next.JS and for navigation I use the following and it works well for me
onFollow={(event) => {
event.preventDefault()
push(event.detail.href)
}}
from components.
I'd like to piggyback off of the this issue with my request for the TopNavigation
having a component.
I'd like to be able to add a custom login widget that Telegram offers: https://core.telegram.org/widgets/login
This has been translated into React/Typescript but since the TopNavigation
component doesn't support custom components, I'm unable to add it into the navigation or point to one of the Button
elements to do this business logic done in the component.
from components.
Would be nice to have an easy interface to make use of react router with cloudscape.
from components.
Simply allowing
value: <Link href="/page2"></Link>
as the OP suggests does not work, because we need to apply additional styles for hover and active states.Applying styles like
.side-navigation a {...}
is unsafe because we do not know what is going on inside react-router library. You may even use a different routing library after all. We cannot make any assumptions what is inside that<Link>
This leaves us with the current
onFollow={event => { event.preventDefault(); navigate(event.href); }}
. May look a little verbose, but it allows us to not worry about every new router version, because everything works same way as before.If you want us to prioritise this feature request, it needs some solid reasons, not just aesthetic preferences
That's very fair and I agree with your stance. The styling issues would require a lot of thinking/effort--the juice probably isn't worth the squeeze.
I think the onFollow
API provides a good hint of what else could be done: more callback props. The only one that I think is notably missing is something approaching onHover
, which would enable programmatic optimistic prefetching . Prefetching is something handled out of the box by the NextJS framework link component (and I imagine for other frameworks as well).
from components.
Related Issues (20)
- [Feature Request]: CloudWatch dashboard UI button not aligned HOT 1
- [Feature Request]: Adding Virtual Rendering to a Table Component HOT 3
- [Bug]: Build Error HOT 2
- Sint at et optio et HOT 1
- [Bug]: Date picker value format is different with show format HOT 2
- [Bug]: 'getLogicalBoundingClientRect' is not exported HOT 2
- top nav bar issue HOT 1
- Limit number of pagination pages shown when having large amount of items. HOT 1
- [Feature Request]: Time Picker HOT 1
- [Feature Request]: Hope to support Menu tabs theme customization ability HOT 3
- [Bug]: Drag and drop to upload a file does not work on macOS Safari HOT 2
- [Feature Request]: Paste to upload file HOT 3
- [Bug]: Gap between files missing on Safari HOT 1
- [Bug]: Updating selectedItems in Table component does not update HOT 1
- [Bug]: `act` from `react-dom/test-utils` is deprecated HOT 4
- [Bug]: Warning when openning and then closing dialog in tests HOT 4
- [Feature Request]: Custom button for DateRangePicker trigger node. HOT 1
- [Feature Request]: Allow year-by-year navigation in date picker HOT 3
- [Bug]: Missing "./internal/analytics-metadata" specifier in "@cloudscape-design/component-toolkit" package after upgrading from 3.0.684 HOT 2
- [Bug]: Theming and nested rules HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from components.