Better fix [deploy-site]

This commit is contained in:
Ben Croker 2025-02-19 09:45:53 -06:00
parent a9c8e6ed11
commit c86c69d072
No known key found for this signature in database
GPG Key ID: 09D799816F1CF332
2 changed files with 11 additions and 22 deletions

View File

@ -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) {

View File

@ -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>