diff options
author | Alan Pearce | 2024-06-21 13:02:08 +0200 |
---|---|---|
committer | Alan Pearce | 2024-06-21 15:33:38 +0200 |
commit | fc5fd2edd9b8282497e33a18300eab694d8a89c6 (patch) | |
tree | 18af097c037ef781cc8f6148d7c1ba37e10877c1 /internal/components/results.templ | |
parent | cac323d9ae70f55a43fd99b73e60cf614be11797 (diff) | |
download | searchix-fc5fd2edd9b8282497e33a18300eab694d8a89c6.tar.lz searchix-fc5fd2edd9b8282497e33a18300eab694d8a89c6.tar.zst searchix-fc5fd2edd9b8282497e33a18300eab694d8a89c6.zip |
refactor: switch to templ for HTML templates
Diffstat (limited to 'internal/components/results.templ')
-rw-r--r-- | internal/components/results.templ | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/internal/components/results.templ b/internal/components/results.templ new file mode 100644 index 0000000..3953cc3 --- /dev/null +++ b/internal/components/results.templ @@ -0,0 +1,44 @@ +package components + +import ( + "strconv" + "searchix/internal/nix" +) + +templ Results(r ResultData) { + if r.Query != "" { + if r.Results != nil && r.Results.Total > 0 { + switch r.Results.Hits[0].Data.(type) { + case nix.Option: + @Options(r.Results) + case nix.Package: + @Packages(r.Results) + } + <footer aria-label="pagination"> + <nav id="pagination"> + if r.Prev != "" { + <a class="button" href={ templ.SafeURL(r.Prev) } rel="prev">Prev</a> + } + if r.Next != "" { + <a class="button" href={ templ.SafeURL(r.Next) } rel="next">Next</a> + } + </nav> + <span role="status">{ strconv.FormatUint(r.Results.Total, 10) } results</span> + </footer> + } else { + <span role="status">Nothing found</span> + } + } else { + <br/> + } +} + +templ ResultsPage(r ResultData) { + @SearchPage(r.TemplateData, r) { + @Results(r) + } +} + +templ openDialogLink(attr string) { + <a class="open-dialog" href={ templ.SafeURL(attr) }>{ attr }</a> +} |