blob: fdf06744936a7ee2ad0878de75d1e60bced8c2d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
{{define "shopping-mode-items"}}
<div class="space-y-2">
{{if .Items}}
{{range .Items}}
<div class="item-row flex items-center gap-3 p-4 bg-white/5 rounded-xl border border-white/10 cursor-pointer {{if .Checked}}item-checked{{end}}"
hx-post="/shopping/mode/{{$.StoreName}}/toggle"
hx-vals='{"id":"{{.ID}}","source":"{{.Source}}","checked":{{if .Checked}}false{{else}}true{{end}}}'
hx-target="#shopping-items"
hx-swap="innerHTML">
<!-- Checkbox visual -->
<div class="w-6 h-6 rounded-full border-2 flex items-center justify-center flex-shrink-0
{{if .Checked}}bg-green-500/30 border-green-500{{else}}border-white/30{{end}}">
{{if .Checked}}
<svg class="w-4 h-4 text-green-400" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
</svg>
{{end}}
</div>
<!-- Item content -->
<div class="flex-1 min-w-0">
<span class="item-name text-white block">{{.Name}}</span>
{{if .Quantity}}
<span class="text-sm text-white/50">{{.Quantity}}</span>
{{end}}
</div>
<!-- Source badge -->
<span class="text-xs px-2 py-0.5 rounded flex-shrink-0
{{if eq .Source "trello"}}bg-blue-900/50 text-blue-300
{{else if eq .Source "user"}}bg-purple-900/50 text-purple-300
{{else}}bg-green-900/50 text-green-300{{end}}">
{{.Source}}
</span>
</div>
{{end}}
{{else}}
<div class="text-center py-16 text-white/50">
<p class="text-lg mb-2">No items</p>
<p class="text-sm">Add items using the form below</p>
</div>
{{end}}
</div>
{{end}}
|