Skip to content

Commit d6510b6

Browse files
authored
fix(v2): prepend docsearch modal to body element (#4188)
1 parent b0e38d5 commit d6510b6

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ function DocSearch({contextualSearch, ...props}) {
5353

5454
const {withBaseUrl} = useBaseUrlUtils();
5555
const history = useHistory();
56+
const searchContainer = useRef(null);
5657
const searchButtonRef = useRef(null);
5758
const [isOpen, setIsOpen] = useState(false);
5859
const [initialQuery, setInitialQuery] = useState(null);
@@ -73,12 +74,18 @@ function DocSearch({contextualSearch, ...props}) {
7374

7475
const onOpen = useCallback(() => {
7576
importDocSearchModalIfNeeded().then(() => {
77+
searchContainer.current = document.createElement('div');
78+
document.body.insertBefore(
79+
searchContainer.current,
80+
document.body.firstChild,
81+
);
7682
setIsOpen(true);
7783
});
7884
}, [importDocSearchModalIfNeeded, setIsOpen]);
7985

8086
const onClose = useCallback(() => {
8187
setIsOpen(false);
88+
searchContainer.current.remove();
8289
}, [setIsOpen]);
8390

8491
const onInput = useCallback(
@@ -172,7 +179,7 @@ function DocSearch({contextualSearch, ...props}) {
172179
{...props}
173180
searchParameters={searchParameters}
174181
/>,
175-
document.body,
182+
searchContainer.current,
176183
)}
177184
</>
178185
);

packages/docusaurus-theme-search-algolia/src/theme/SearchBar/styles.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,7 @@
1414
transition: all var(--ifm-transition-fast)
1515
var(--ifm-transition-timing-default);
1616
}
17+
18+
.DocSearch-Container {
19+
z-index: calc(var(--ifm-z-index-fixed) + 1);
20+
}

0 commit comments

Comments
 (0)