blob: cb070dfb7ce9fcd9ecbded65d65c1cf7a63ddad0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
import React from 'react';
import { render } from 'react-dom';
import RedBox from 'redbox-react';
import _ from "lodash";
import App from "./app";
import './app/index.scss';
import { NavigationPaneSearch } from './navigationPaneSearch/navigationPaneSearch';
import { PageSummary } from './pageSummary/pageSummary';
const appEl = document.getElementById('searchBar');
const rootEl = document.createElement('div');
const renderNavigationPane = () => {
render(
<NavigationPaneSearch />,
document.getElementById('paneSearch')
)
}
const renderOnThisPage = () => {
document.addEventListener('DOMContentLoaded', () => {
for (const e of document.querySelectorAll('.tabs-section-body > div[data-togglable]')) {
const entries = Array.from(e.querySelectorAll('a[anchor-label]')).map((element: HTMLElement) => {
return {
location: element.getAttribute('data-name'),
label: element.getAttribute('anchor-label'),
sourceSets: _.sortBy(element.getAttribute('data-filterable-set').split(' '))
}
})
const unique = _.uniqBy(entries, ({label}) => label)
if (unique.length) {
const element = document.createElement('div')
render(<PageSummary entries={unique} />, element)
e.appendChild(element)
}
}
})
}
let renderApp = () => {
render(
<App />,
rootEl
);
renderNavigationPane();
renderOnThisPage();
};
// @ts-ignore
if (module.hot) {
const renderAppHot = renderApp;
const renderError = (error: Error) => {
render(
<RedBox error={error} />,
rootEl
);
};
renderApp = () => {
try {
renderAppHot();
} catch (error) {
renderError(error);
}
};
// @ts-ignore
module.hot.accept('./app', () => {
setTimeout(renderApp);
});
}
renderApp();
appEl!.appendChild(rootEl);
|