Skip to content

Commit e6b8e75

Browse files
committed
Load search bar if defined in the query param
1 parent 5e0dfba commit e6b8e75

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

scaladoc-js/main/src/searchbar/SearchbarComponent.scala

+9-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import java.net.URI
1717
class SearchbarComponent(engine: PageSearchEngine, inkuireEngine: InkuireJSSearchEngine, parser: QueryParser):
1818
val initialChunkSize = 5
1919
val resultsChunkSize = 20
20+
21+
val querySearch = Option(URLSearchParams(window.location.search).get("search")).filter(_.nonEmpty)
22+
2023
def pathToRoot() = window.document.documentElement.getAttribute("data-pathToRoot")
2124
extension (p: PageEntry)
2225
def toHTML(boldChars: Set[Int]) =
@@ -262,7 +265,8 @@ class SearchbarComponent(engine: PageSearchEngine, inkuireEngine: InkuireJSSearc
262265
document.body.addEventListener("keydown", (e: KeyboardEvent) => handleGlobalKeyDown(e))
263266

264267
private val inputElem: html.Input =
265-
input(cls := "scaladoc-searchbar-input", `type` := "search", `placeholder`:= "Find anything").tap { element =>
268+
val initialValue = querySearch.getOrElse("")
269+
input(cls := "scaladoc-searchbar-input", `type` := "search", `placeholder`:= "Find anything", value := initialValue).tap { element =>
266270
element.addEventListener("input", { e =>
267271
clearTimeout(timeoutHandle)
268272
val inputValue = e.target.asInstanceOf[html.Input].value
@@ -453,3 +457,7 @@ class SearchbarComponent(engine: PageSearchEngine, inkuireEngine: InkuireJSSearc
453457
}
454458

455459
inputElem.dispatchEvent(new Event("input"))
460+
if (querySearch.isDefined && !document.body.contains(rootDiv)) {
461+
document.body.appendChild(rootDiv)
462+
inputElem.focus()
463+
}

0 commit comments

Comments
 (0)