From e1ab047fa19904b469adbaa8fdeb82acb2b5b2f9 Mon Sep 17 00:00:00 2001 From: Jenil Jain Date: Wed, 15 Jan 2025 13:20:20 +0530 Subject: [PATCH 1/5] feat: Techdocs base url should be app.baseUrl Signed-off-by: Jenil Jain --- .../reader/components/TechDocsReaderPageContent/dom.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx index 8d23ed7b8b..1ca6e50c9b 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx @@ -20,7 +20,8 @@ import useMediaQuery from '@material-ui/core/useMediaQuery'; import { useTheme } from '@material-ui/core/styles'; import { CompoundEntityRef } from '@backstage/catalog-model'; -import { useAnalytics, useApi } from '@backstage/core-plugin-api'; +import { configApiRef, useAnalytics, useApi } from '@backstage/core-plugin-api'; +import {} from '@backstage/plugin-catalog-react'; import { scmIntegrationsApiRef } from '@backstage/integration-react'; import { @@ -68,6 +69,7 @@ export const useTechDocsReaderDom = ( const techdocsStorageApi = useApi(techdocsStorageApiRef); const scmIntegrationsApi = useApi(scmIntegrationsApiRef); + const configApi = useApi(configApiRef); const { state, path, content: rawPage } = useTechDocsReader(); const { '*': currPath = '' } = useParams(); @@ -193,7 +195,7 @@ export const useTechDocsReaderDom = ( scrollIntoNavigation(), copyToClipboard(theme), addLinkClickListener({ - baseUrl: window.location.origin, + baseUrl: configApi.getString('app.baseUrl'), onClick: (event: MouseEvent, url: string) => { // detect if CTRL or META keys are pressed so that links can be opened in a new tab with `window.open` const modifierActive = event.ctrlKey || event.metaKey; @@ -258,7 +260,7 @@ export const useTechDocsReaderDom = ( onLoaded: () => {}, }), ]), - [theme, navigate, analytics, entityRef.name], + [theme, navigate, analytics, entityRef.name, configApi], ); useEffect(() => { From 9562155b8ba8dc1c1b67471b35ac22b198441ae7 Mon Sep 17 00:00:00 2001 From: Jenil Jain Date: Wed, 15 Jan 2025 13:21:09 +0530 Subject: [PATCH 2/5] feat: Techdocs base url should be app.baseUrl Signed-off-by: Jenil Jain --- .../src/reader/components/TechDocsReaderPageContent/dom.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx index 1ca6e50c9b..c8b2ce957e 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx @@ -21,7 +21,6 @@ import { useTheme } from '@material-ui/core/styles'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { configApiRef, useAnalytics, useApi } from '@backstage/core-plugin-api'; -import {} from '@backstage/plugin-catalog-react'; import { scmIntegrationsApiRef } from '@backstage/integration-react'; import { From f4be93445d9a48e57ff4da8bcac6c5c5c6f09dd9 Mon Sep 17 00:00:00 2001 From: Jenil Jain Date: Wed, 15 Jan 2025 14:53:35 +0530 Subject: [PATCH 3/5] fix: Added Changeset Signed-off-by: Jenil Jain --- .changeset/proud-dryers-act.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/proud-dryers-act.md diff --git a/.changeset/proud-dryers-act.md b/.changeset/proud-dryers-act.md new file mode 100644 index 0000000000..b0e1446c97 --- /dev/null +++ b/.changeset/proud-dryers-act.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': major +--- + +Changed the base URL in addLinkClickListener from window.location.origin to app.baseUrl for improved path handling. This fixes an issue where Backstage, when running on a subpath, was unable to handle non-Backstage URLs of the same origin correctly. From 5b33b7bdcb065cca9319c75ef4921e43eb5ba18c Mon Sep 17 00:00:00 2001 From: Jenil Jain Date: Wed, 15 Jan 2025 16:12:28 +0530 Subject: [PATCH 4/5] feat: Small fix Signed-off-by: Jenil Jain --- .../src/reader/components/TechDocsReaderPageContent/dom.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx index c8b2ce957e..c17d5fcac4 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx @@ -194,7 +194,9 @@ export const useTechDocsReaderDom = ( scrollIntoNavigation(), copyToClipboard(theme), addLinkClickListener({ - baseUrl: configApi.getString('app.baseUrl'), + baseUrl: + configApi.getOptionalString('app.baseUrl') || + window.location.origin, onClick: (event: MouseEvent, url: string) => { // detect if CTRL or META keys are pressed so that links can be opened in a new tab with `window.open` const modifierActive = event.ctrlKey || event.metaKey; From 6d9e732e333eb5f395669b8c7d37035cc8fb5707 Mon Sep 17 00:00:00 2001 From: Jenil Jain Date: Wed, 15 Jan 2025 18:39:02 +0530 Subject: [PATCH 5/5] fix: Changed to patch from major Signed-off-by: Jenil Jain --- .changeset/proud-dryers-act.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/proud-dryers-act.md b/.changeset/proud-dryers-act.md index b0e1446c97..4bc7a98fdb 100644 --- a/.changeset/proud-dryers-act.md +++ b/.changeset/proud-dryers-act.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-techdocs': major +'@backstage/plugin-techdocs': patch --- Changed the base URL in addLinkClickListener from window.location.origin to app.baseUrl for improved path handling. This fixes an issue where Backstage, when running on a subpath, was unable to handle non-Backstage URLs of the same origin correctly.