fix(ui): preserve external hrefs in BUI link components
When the app was served under a non-root base path, BUI link components rewrote absolute `href` values as in-app paths — e.g. `https://example.com` became `/basename/https:/example.com` — because every href was passed through react-router's `useHref`, which treats all strings as relative paths. External URLs (`http://`, `https://`, `//`, `mailto:`, `tel:`) now bypass href resolution. Internal hrefs are normalized to their canonical pre-basename form in `useDefinition`, so downstream resolution by react-router's `useHref` (for rendering) and `navigate` (for click-navigation) adds the basename exactly once. Signed-off-by: Johan Persson <johanopersson@gmail.com>
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/ui': patch
|
||||
---
|
||||
|
||||
Fixed external URLs in BUI link components being rewritten as in-app paths when the app is served under a non-root base path. Absolute URLs (`http://`, `https://`, `//`, `mailto:`, `tel:`) are now passed through unchanged. Internal `href` values are resolved against the current `basename` exactly once, which also fixes a latent issue where internal link clicks under a non-root base path could navigate to a URL with the `basename` prefix doubled.
|
||||
|
||||
**Affected components:** ButtonLink, Card, Link, Menu, Tab, Table, Tag
|
||||
Reference in New Issue
Block a user