search.templ (979B)
1 package search 2 3 import ( 4 "fmt" 5 "lyrics/internal/server/ui/layouts/base" 6 "lyrics/internal/server/ui/partials/table" 7 ) 8 9 templ Search(params SearchParams) { 10 {{ 11 var headers []string 12 switch params.SearchType { 13 case "song": 14 headers = append(headers, []string{"title", "latin title", "artist", "release"}...) 15 case "release": 16 headers = append(headers, []string{"title", "latin title", "artist", "type", "tracks"}...) 17 case "artist": 18 headers = append(headers, []string{"name", "latin title"}...) 19 } 20 }} 21 @base.Base(base.BaseParams{Title: "search"}) { 22 <div class="table-wrapper"> 23 @table.Table(table.TableParams{ 24 Headers: headers, 25 TotalPages: 0, 26 CurrentPage: params.Page, 27 }) { 28 <tbody 29 hx-get={ fmt.Sprintf("/%s/search?format=table&query=%s&limit=%d&page=%d", params.SearchType, params.Query, params.Limit, params.Page) } 30 hx-trigger="load" 31 hx-target=".table-wrapper" 32 hx-swap="outerHTML" 33 ></tbody> 34 } 35 </div> 36 } 37 }