|
@@ -43,8 +43,13 @@ type Props = {
|
|
|
searchPager: React.ReactNode,
|
|
searchPager: React.ReactNode,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+const SearchResultContent = dynamic(() => import('./SearchResultContent').then(mod => mod.SearchResultContent), {
|
|
|
|
|
+ ssr: false,
|
|
|
|
|
+ loading: () => <></>,
|
|
|
|
|
+});
|
|
|
const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturnSelectedPageIds, Props> = (props:Props, ref) => {
|
|
const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturnSelectedPageIds, Props> = (props:Props, ref) => {
|
|
|
- const SearchResultContent = dynamic(import('./SearchResultContent').then(mod => mod.SearchResultContent), { ssr: false });
|
|
|
|
|
|
|
+
|
|
|
const {
|
|
const {
|
|
|
pages,
|
|
pages,
|
|
|
searchingKeyword,
|
|
searchingKeyword,
|
|
@@ -62,6 +67,7 @@ const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturn
|
|
|
|
|
|
|
|
const [selectedPageIdsByCheckboxes] = useState<Set<string>>(new Set());
|
|
const [selectedPageIdsByCheckboxes] = useState<Set<string>>(new Set());
|
|
|
// const [allPageIds] = useState<Set<string>>(new Set());
|
|
// const [allPageIds] = useState<Set<string>>(new Set());
|
|
|
|
|
+
|
|
|
const [selectedPageWithMeta, setSelectedPageWithMeta] = useState<IPageWithSearchMeta | undefined>();
|
|
const [selectedPageWithMeta, setSelectedPageWithMeta] = useState<IPageWithSearchMeta | undefined>();
|
|
|
|
|
|
|
|
// publish selectAll()
|
|
// publish selectAll()
|
|
@@ -108,10 +114,13 @@ const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturn
|
|
|
|
|
|
|
|
// select first item on load
|
|
// select first item on load
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
- if (selectedPageWithMeta == null && pages != null && pages.length > 0) {
|
|
|
|
|
|
|
+ if ((pages == null || pages.length === 0)) {
|
|
|
|
|
+ setSelectedPageWithMeta(undefined);
|
|
|
|
|
+ }
|
|
|
|
|
+ else if ((pages != null && pages.length > 0)) {
|
|
|
setSelectedPageWithMeta(pages[0]);
|
|
setSelectedPageWithMeta(pages[0]);
|
|
|
}
|
|
}
|
|
|
- }, [pages, selectedPageWithMeta]);
|
|
|
|
|
|
|
+ }, [pages, setSelectedPageWithMeta]);
|
|
|
|
|
|
|
|
// reset selectedPageIdsByCheckboxes
|
|
// reset selectedPageIdsByCheckboxes
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
@@ -189,7 +198,7 @@ const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturn
|
|
|
pages={pages}
|
|
pages={pages}
|
|
|
selectedPageId={selectedPageWithMeta?.data._id}
|
|
selectedPageId={selectedPageWithMeta?.data._id}
|
|
|
forceHideMenuItems={forceHideMenuItems}
|
|
forceHideMenuItems={forceHideMenuItems}
|
|
|
- onPageSelected={page => setSelectedPageWithMeta(page)}
|
|
|
|
|
|
|
+ onPageSelected={page => (setSelectedPageWithMeta(page)) }
|
|
|
onCheckboxChanged={checkboxChangedHandler}
|
|
onCheckboxChanged={checkboxChangedHandler}
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
@@ -205,7 +214,7 @@ const SearchPageBaseSubstance: ForwardRefRenderFunction<ISelectableAll & IReturn
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div className="mw-0 flex-grow-1 flex-basis-0 d-none d-lg-block search-result-content">
|
|
<div className="mw-0 flex-grow-1 flex-basis-0 d-none d-lg-block search-result-content">
|
|
|
- { selectedPageWithMeta != null && (
|
|
|
|
|
|
|
+ {pages != null && pages.length !== 0 && selectedPageWithMeta != null && (
|
|
|
<SearchResultContent
|
|
<SearchResultContent
|
|
|
pageWithMeta={selectedPageWithMeta}
|
|
pageWithMeta={selectedPageWithMeta}
|
|
|
highlightKeywords={highlightKeywords}
|
|
highlightKeywords={highlightKeywords}
|