Skip to content

Commit 0bd8a6c

Browse files
committed
Update GuideDocsPage to use iframe
1 parent dc72a08 commit 0bd8a6c

File tree

1 file changed

+50
-16
lines changed

1 file changed

+50
-16
lines changed
Lines changed: 50 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,52 @@
11
import { PageWithHeader } from '@backstage/core-components';
2-
import { TechDocsReaderPageContent } from '@backstage/plugin-techdocs';
3-
import { TechDocsReaderPageProvider } from '@backstage/plugin-techdocs-react';
4-
import React from 'react';
2+
import React, { useLayoutEffect, useState } from 'react';
53

6-
export const DeveloperGuidePage = () => (
7-
<PageWithHeader title="Developer Guide" themeId="documentation">
8-
<TechDocsReaderPageProvider
9-
entityRef={{
10-
kind: 'component',
11-
namespace: 'default',
12-
name: 'developer-guide',
13-
}}
14-
>
15-
<TechDocsReaderPageContent />
16-
</TechDocsReaderPageProvider>
17-
</PageWithHeader>
18-
);
4+
export const DeveloperGuidePage = () => {
5+
const DEFAULT_HEADER_HEIGHT = 85;
6+
const DEFAULT_SIDEBAR_WIDTH = 220;
7+
const [offsets, setOffsets] = useState({
8+
top: DEFAULT_HEADER_HEIGHT,
9+
left: DEFAULT_SIDEBAR_WIDTH,
10+
});
11+
12+
useLayoutEffect(() => {
13+
function updateOffsets() {
14+
const header = document.querySelector('[data-testid="app-header"]');
15+
const sidebar = document.querySelector('[data-testid="sidebar"]');
16+
17+
const top = header
18+
? (header as HTMLElement).offsetHeight
19+
: DEFAULT_HEADER_HEIGHT;
20+
const left = sidebar
21+
? (sidebar as HTMLElement).offsetWidth
22+
: DEFAULT_SIDEBAR_WIDTH;
23+
24+
setOffsets({ top, left });
25+
}
26+
27+
updateOffsets();
28+
29+
window.addEventListener('resize', updateOffsets);
30+
return () => window.removeEventListener('resize', updateOffsets);
31+
}, []);
32+
33+
return (
34+
<PageWithHeader title="Developer Guide" themeId="documentation">
35+
<div
36+
style={{
37+
position: 'fixed',
38+
top: offsets.top,
39+
left: offsets.left,
40+
right: 0,
41+
bottom: 0,
42+
}}
43+
>
44+
<iframe
45+
src="https://dev-guide.diamond.ac.uk"
46+
title="Embedded Docs"
47+
style={{ border: 'none', width: '100%', height: '100%' }}
48+
/>
49+
</div>
50+
</PageWithHeader>
51+
);
52+
};

0 commit comments

Comments
 (0)