Better fix [deploy-site]
This commit is contained in:
parent
a9c8e6ed11
commit
c86c69d072
|
@ -194,10 +194,7 @@ func setupHome(router chi.Router, signals sessions.Store, ns *embeddednats.Serve
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
signals.SearchFetching = false
|
datastar.NewSSE(w, r).MergeFragmentTempl(SiteSearchResults(results))
|
||||||
signals.OpenSearchResults = true
|
|
||||||
|
|
||||||
datastar.NewSSE(w, r).MergeFragmentTempl(SiteSearchResults(signals, results))
|
|
||||||
})
|
})
|
||||||
apiRouter.Route("/todos", func(todosRouter chi.Router) {
|
apiRouter.Route("/todos", func(todosRouter chi.Router) {
|
||||||
todosRouter.Get("/", func(w http.ResponseWriter, r *http.Request) {
|
todosRouter.Get("/", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
|
@ -130,8 +130,8 @@ type SearchResult struct {
|
||||||
|
|
||||||
const SearchFromHeaderKey = "X-Search-From-Header"
|
const SearchFromHeaderKey = "X-Search-From-Header"
|
||||||
|
|
||||||
templ SiteSearch(signals *SiteSearchSignals, searchResults []SearchResult, fromHeader bool) {
|
templ SiteSearch(fromHeader bool) {
|
||||||
<div data-signals={templ.JSONString(signals)} class="w-full">
|
<div class="w-full">
|
||||||
<div class="flex flex-nowrap w-full relative">
|
<div class="flex flex-nowrap w-full relative">
|
||||||
<input
|
<input
|
||||||
class="flex-1 input input-bordered h-10 w-full"
|
class="flex-1 input input-bordered h-10 w-full"
|
||||||
|
@ -142,7 +142,7 @@ templ SiteSearch(signals *SiteSearchSignals, searchResults []SearchResult, fromH
|
||||||
"$siteSearch.length > 1 && @get('/api/search', %s)",
|
"$siteSearch.length > 1 && @get('/api/search', %s)",
|
||||||
fmt.Sprintf(`{"headers": {"%s": "%t"}}`, SearchFromHeaderKey, fromHeader),
|
fmt.Sprintf(`{"headers": {"%s": "%t"}}`, SearchFromHeaderKey, fromHeader),
|
||||||
)}
|
)}
|
||||||
data-indicator="$searchFetching"
|
data-indicator="searchFetching"
|
||||||
if fromHeader {
|
if fromHeader {
|
||||||
data-ref-site-search-input
|
data-ref-site-search-input
|
||||||
data-on-keydown__window="evt.key == 'k' && (evt.metaKey || evt.ctrlKey) && ($siteSearchInput.focus(), evt.preventDefault())"
|
data-on-keydown__window="evt.key == 'k' && (evt.metaKey || evt.ctrlKey) && ($siteSearchInput.focus(), evt.preventDefault())"
|
||||||
|
@ -152,11 +152,11 @@ templ SiteSearch(signals *SiteSearchSignals, searchResults []SearchResult, fromH
|
||||||
@sseIndicator("searchFetching")
|
@sseIndicator("searchFetching")
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@SiteSearchResults(signals, searchResults)
|
<ul id="site_search_results" data-show="false"></ul>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
templ SiteSearchResults(signals *SiteSearchSignals, searchResults []SearchResult) {
|
templ SiteSearchResults(searchResults []SearchResult) {
|
||||||
<ul
|
<ul
|
||||||
id="site_search_results"
|
id="site_search_results"
|
||||||
class={
|
class={
|
||||||
|
@ -167,7 +167,7 @@ templ SiteSearchResults(signals *SiteSearchSignals, searchResults []SearchResult
|
||||||
"lg:absolute",
|
"lg:absolute",
|
||||||
templ.KV("lg:-left-full", len(searchResults) > 0)
|
templ.KV("lg:-left-full", len(searchResults) > 0)
|
||||||
}
|
}
|
||||||
data-signals={templ.JSONString(signals)}
|
data-signals="{openSearchResults: true}"
|
||||||
data-on-click__outside="$openSearchResults ? $openSearchResults = false : null"
|
data-on-click__outside="$openSearchResults ? $openSearchResults = false : null"
|
||||||
data-on-keydown__window="evt.key == 'Escape' && $openSearchResults ? $openSearchResults = false : null"
|
data-on-keydown__window="evt.key == 'Escape' && $openSearchResults ? $openSearchResults = false : null"
|
||||||
data-show="$openSearchResults">
|
data-show="$openSearchResults">
|
||||||
|
@ -188,23 +188,15 @@ templ SiteSearchResults(signals *SiteSearchSignals, searchResults []SearchResult
|
||||||
</ul>
|
</ul>
|
||||||
}
|
}
|
||||||
|
|
||||||
templ HeaderSiteSearch(signals *SiteSearchSignals, searchResults []SearchResult) {
|
templ HeaderSiteSearch() {
|
||||||
<div id="header_site_search" class="hidden lg:flex lg:gap-4 relative z-10">
|
<div id="header_site_search" class="hidden lg:flex lg:gap-4 relative z-10">
|
||||||
@SiteSearch(&SiteSearchSignals{
|
@SiteSearch(true)
|
||||||
Search: signals.Search,
|
|
||||||
SearchFetching: signals.SearchFetching,
|
|
||||||
OpenSearchResults: signals.OpenSearchResults,
|
|
||||||
}, searchResults, true)
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
templ DrawerSiteSearch(signals *SiteSearchSignals, searchResults []SearchResult) {
|
templ DrawerSiteSearch(signals *SiteSearchSignals, searchResults []SearchResult) {
|
||||||
<div id="drawer_site_search" class="flex lg:hidden z-10 p-4 w-80">
|
<div id="drawer_site_search" class="flex lg:hidden z-10 p-4 w-80">
|
||||||
@SiteSearch(&SiteSearchSignals{
|
@SiteSearch(false)
|
||||||
Search: signals.Search,
|
|
||||||
SearchFetching: signals.SearchFetching,
|
|
||||||
OpenSearchResults: signals.OpenSearchResults,
|
|
||||||
}, searchResults, false)
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,7 +216,7 @@ templ header(r *http.Request) {
|
||||||
<div class="hidden lg:text-md lg:text-lg lg:flex lg:gap-4 xl:gap-6 lg:visible ">
|
<div class="hidden lg:text-md lg:text-lg lg:flex lg:gap-4 xl:gap-6 lg:visible ">
|
||||||
@headerTopLevelLinks(r)
|
@headerTopLevelLinks(r)
|
||||||
</div>
|
</div>
|
||||||
@HeaderSiteSearch(&SiteSearchSignals{SearchFetching: false}, []SearchResult{})
|
@HeaderSiteSearch()
|
||||||
<div class="hidden text-xl xl:flex xl:gap-4 xl:visible mt-1">
|
<div class="hidden text-xl xl:flex xl:gap-4 xl:visible mt-1">
|
||||||
@headerExternalLinks()
|
@headerExternalLinks()
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue