about summary refs log tree commit diff stats
path: root/internal/components/combined.templ
diff options
context:
space:
mode:
Diffstat (limited to 'internal/components/combined.templ')
-rw-r--r--internal/components/combined.templ38
1 files changed, 38 insertions, 0 deletions
diff --git a/internal/components/combined.templ b/internal/components/combined.templ
new file mode 100644
index 0000000..eeacdb5
--- /dev/null
+++ b/internal/components/combined.templ
@@ -0,0 +1,38 @@
+package components
+
+import (
+	"go.alanpearce.eu/searchix/internal/index"
+	"go.alanpearce.eu/searchix/internal/nix"
+)
+
+templ Combined(result *index.Result) {
+	<table>
+		<thead>
+			<tr>
+				<th scope="col">Attribute</th>
+				<th scope="col">Description</th>
+			</tr>
+		</thead>
+		<tbody>
+			for _, hit := range result.Hits {
+				<tr>
+					<td>
+						@openCombinedDialogLink(nix.GetKey(hit.Data))
+					</td>
+					<td>
+						switch hit.Data.(type) {
+							case nix.Option:
+								if o := convertMatch[nix.Option](hit.Data); o != nil {
+									@markdown(firstSentence(o.Description))
+								}
+							case nix.Package:
+								if o := convertMatch[nix.Package](hit.Data); o != nil {
+									{ firstSentence(o.Description) }
+								}
+						}
+					</td>
+				</tr>
+			}
+		</tbody>
+	</table>
+}