Coffee journaling on ATProto (alpha) alpha.arabica.social
coffee
17
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: link to record view from my coffee

+27 -27
+5 -5
internal/web/components/entity_tables.templ
··· 86 86 if ownerHandle != "" { 87 87 <a href={ templ.SafeURL(fmt.Sprintf("/beans/%s?owner=%s", bean.RKey, ownerHandle)) } class="hover:underline">{ bean.Name }</a> 88 88 } else { 89 - { bean.Name } 89 + <a href={ templ.SafeURL(fmt.Sprintf("/beans/%s", bean.RKey)) } class="hover:underline">{ bean.Name }</a> 90 90 } 91 91 </div> 92 92 if bean.Roaster != nil && bean.Roaster.Name != "" { ··· 196 196 if ownerHandle != "" { 197 197 <a href={ templ.SafeURL(fmt.Sprintf("/roasters/%s?owner=%s", roaster.RKey, ownerHandle)) } class="hover:underline">{ roaster.Name }</a> 198 198 } else { 199 - { roaster.Name } 199 + <a href={ templ.SafeURL(fmt.Sprintf("/roasters/%s", roaster.RKey)) } class="hover:underline">{ roaster.Name }</a> 200 200 } 201 201 </div> 202 202 </div> ··· 272 272 if ownerHandle != "" { 273 273 <a href={ templ.SafeURL(fmt.Sprintf("/grinders/%s?owner=%s", grinder.RKey, ownerHandle)) } class="hover:underline">{ grinder.Name }</a> 274 274 } else { 275 - { grinder.Name } 275 + <a href={ templ.SafeURL(fmt.Sprintf("/grinders/%s", grinder.RKey)) } class="hover:underline">{ grinder.Name }</a> 276 276 } 277 277 </div> 278 278 </div> ··· 339 339 if ownerHandle != "" { 340 340 <a href={ templ.SafeURL(fmt.Sprintf("/brewers/%s?owner=%s", brewer.RKey, ownerHandle)) } class="hover:underline">{ brewer.Name }</a> 341 341 } else { 342 - { brewer.Name } 342 + <a href={ templ.SafeURL(fmt.Sprintf("/brewers/%s", brewer.RKey)) } class="hover:underline">{ brewer.Name }</a> 343 343 } 344 344 </div> 345 345 </div> ··· 393 393 <div class="feed-content-box-sm"> 394 394 <div class="flex items-start justify-between gap-2 mb-2"> 395 395 <div class="min-w-0"> 396 - <div class="font-bold text-brown-900 text-base truncate">{ recipe.Name }</div> 396 + <div class="font-bold text-brown-900 text-base truncate"><a href={ templ.SafeURL(fmt.Sprintf("/recipes/%s", recipe.RKey)) } class="hover:underline">{ recipe.Name }</a></div> 397 397 if recipe.BrewerObj != nil { 398 398 <div class="text-sm text-brown-700 mt-0.5"> 399 399 <span class="font-medium inline-flex items-center gap-1">
+22 -22
internal/web/components/shared.templ
··· 26 26 if props.Bean.Roaster != nil && props.Bean.Roaster.Name != "" { 27 27 <div class="text-sm text-brown-700 mt-0.5"> 28 28 <span class="inline-flex items-center gap-1 font-medium"> 29 - @IconStore() 30 - { props.Bean.Roaster.Name } 31 - </span> 29 + @IconStore() 30 + { props.Bean.Roaster.Name } 31 + </span> 32 32 </div> 33 33 } 34 34 <div class="text-xs text-brown-600 mt-1 flex flex-wrap gap-x-2 gap-y-1"> 35 35 if props.Bean.Origin != "" { 36 36 <span class="inline-flex items-center gap-1"> 37 - @IconMapPin() 38 - { props.Bean.Origin } 39 - </span> 37 + @IconMapPin() 38 + { props.Bean.Origin } 39 + </span> 40 40 } 41 41 if props.Bean.RoastLevel != "" { 42 42 <span class="inline-flex items-center gap-1"> 43 - @IconFlame() 44 - { props.Bean.RoastLevel } 45 - </span> 43 + @IconFlame() 44 + { props.Bean.RoastLevel } 45 + </span> 46 46 } 47 47 if props.Bean.Variety != "" { 48 48 <span class="inline-flex items-center gap-1"> 49 - @IconLeaf() 50 - { props.Bean.Variety } 51 - </span> 49 + @IconLeaf() 50 + { props.Bean.Variety } 51 + </span> 52 52 } 53 53 if props.Bean.Process != "" { 54 54 <span class="inline-flex items-center gap-1"> 55 - @IconSprout() 56 - { props.Bean.Process } 57 - </span> 55 + @IconSprout() 56 + { props.Bean.Process } 57 + </span> 58 58 } 59 59 if props.Bean.Rating != nil { 60 60 <span class="inline-flex items-center gap-1"> 61 - @IconStar() 62 - { bff.FormatBeanRating(props.Bean.Rating) } 63 - </span> 61 + @IconStar() 62 + { bff.FormatBeanRating(props.Bean.Rating) } 63 + </span> 64 64 } 65 65 if props.CoffeeAmount > 0 { 66 66 <span class="inline-flex items-center gap-1"> 67 - @IconScale() 68 - { fmt.Sprintf("%dg", props.CoffeeAmount) } 69 - </span> 67 + @IconScale() 68 + { fmt.Sprintf("%dg", props.CoffeeAmount) } 69 + </span> 70 70 } 71 71 </div> 72 72 } ··· 234 234 type="text" 235 235 id="handle" 236 236 name="handle" 237 - placeholder="alice.arabica.systems" 237 + placeholder="alice.bsky.social" 238 238 autocomplete="off" 239 239 required 240 240 class="w-full px-4 py-3 border border-brown-300 rounded-lg focus:ring-2 focus:ring-brown-600 focus:border-brown-600 bg-white"