aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/frontend
diff options
context:
space:
mode:
authorMarcin Aman <marcin.aman@gmail.com>2020-12-17 10:17:45 +0100
committerGitHub <noreply@github.com>2020-12-17 10:17:45 +0100
commit2f7ee2b82cda39f6bd94c5200b83563418b68dd7 (patch)
tree0942f00012ee7a90208c5d80ed3dd5ec6a3d9f92 /plugins/base/frontend
parent9e344b2047f72051bed509fb4e7ac1ae53f8098e (diff)
downloaddokka-2f7ee2b82cda39f6bd94c5200b83563418b68dd7.tar.gz
dokka-2f7ee2b82cda39f6bd94c5200b83563418b68dd7.tar.bz2
dokka-2f7ee2b82cda39f6bd94c5200b83563418b68dd7.zip
Navigate to root after logo click, add data to searchbars on multimodule (#1631)
Diffstat (limited to 'plugins/base/frontend')
-rw-r--r--plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx5
-rw-r--r--plugins/base/frontend/src/main/components/search/search.tsx37
-rw-r--r--plugins/base/frontend/src/main/components/utils/requests.tsx7
3 files changed, 33 insertions, 16 deletions
diff --git a/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx b/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx
index b11b36f6..152e7719 100644
--- a/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx
+++ b/plugins/base/frontend/src/main/components/navigationPaneSearch/navigationPaneSearch.tsx
@@ -4,6 +4,7 @@ import { DokkaFuzzyFilterComponent } from '../search/dokkaFuzzyFilter';
import { IWindow, Option } from '../search/types';
import './navigationPaneSearch.scss';
import ClearIcon from 'react-svg-loader!./clear.svg';
+import { relativizeUrlForRequest } from '../utils/requests';
export const NavigationPaneSearch = () => {
const [navigationList, setNavigationList] = useState<Option[]>([]);
@@ -31,9 +32,7 @@ export const NavigationPaneSearch = () => {
}
useEffect(() => {
- const pathToRoot = (window as IWindow).pathToRoot
- const url = pathToRoot.endsWith('/') ? `${pathToRoot}scripts/navigation-pane.json` : `${pathToRoot}/scripts/navigation-pane.json`
- fetch(url)
+ fetch(relativizeUrlForRequest('scripts/navigation-pane.json'))
.then(response => response.json())
.then((result) => {
setNavigationList(result.map((record: Option, idx: number) => {
diff --git a/plugins/base/frontend/src/main/components/search/search.tsx b/plugins/base/frontend/src/main/components/search/search.tsx
index 3616a396..f0527cc0 100644
--- a/plugins/base/frontend/src/main/components/search/search.tsx
+++ b/plugins/base/frontend/src/main/components/search/search.tsx
@@ -1,10 +1,11 @@
-import React, { useCallback, useState } from 'react';
+import React, { useCallback, useEffect, useState } from 'react';
import { Select, List } from '@jetbrains/ring-ui';
import '@jetbrains/ring-ui/components/input-size/input-size.scss';
import './search.scss';
import { IWindow, Option, Props } from "./types";
import { DokkaSearchAnchor } from "./dokkaSearchAnchor";
import { DokkaFuzzyFilterComponent } from "./dokkaFuzzyFilter";
+import { relativizeUrlForRequest } from '../utils/requests';
const WithFuzzySearchFilterComponent: React.FC<Props> = ({ data }: Props) => {
const [selected, onSelected] = useState<Option>(data[0]);
@@ -42,17 +43,27 @@ const WithFuzzySearchFilterComponent: React.FC<Props> = ({ data }: Props) => {
}
export const WithFuzzySearchFilter = () => {
- let data: Option[] = [];
- const pages = (window as IWindow).pages;
- if (pages) {
- data = pages.map((page, i) => ({
- ...page,
- label: page.name,
- key: i + 1,
- type: page.kind,
- rgItemType: List.ListProps.Type.CUSTOM
- }));
- }
+ const [navigationList, setNavigationList] = useState<Option[]>([]);
- return <WithFuzzySearchFilterComponent data={data} />;
+ useEffect(() => {
+ fetch(relativizeUrlForRequest('scripts/pages.json'))
+ .then(response => response.json())
+ .then((result) => {
+ setNavigationList(result.map((record: Option, idx: number) => {
+ return {
+ ...record,
+ label: record.name,
+ key: idx,
+ type: record.kind,
+ rgItemType: List.ListProps.Type.CUSTOM
+ }
+ }))
+ },
+ (error) => {
+ console.error('failed to fetch pages data', error)
+ setNavigationList([])
+ })
+ }, [])
+
+ return <WithFuzzySearchFilterComponent data={navigationList} />;
};
diff --git a/plugins/base/frontend/src/main/components/utils/requests.tsx b/plugins/base/frontend/src/main/components/utils/requests.tsx
new file mode 100644
index 00000000..4a14e6f6
--- /dev/null
+++ b/plugins/base/frontend/src/main/components/utils/requests.tsx
@@ -0,0 +1,7 @@
+import { IWindow } from "../search/types"
+
+export const relativizeUrlForRequest = (filePath: string) : string => {
+ const pathToRoot = (window as IWindow).pathToRoot
+ const relativePath = pathToRoot == "" ? "." : pathToRoot
+ return relativePath.endsWith('/') ? `${relativePath}${filePath}` : `${relativePath}/${filePath}`
+} \ No newline at end of file