index.templ (1286B)
1 package index 2 3 import ( 4 "lyrics/internal/server/routes" 5 "lyrics/internal/server/ui/layouts/base" 6 ) 7 8 templ Index(params IndexParams) { 9 @base.Base(base.BaseParams{Title: "home"}) { 10 <section> 11 <h1>Recently Added Songs</h1> 12 if len(params.Songs) == 0 { 13 <p>No songs yet.</p> 14 } else { 15 <ol> 16 for _, song := range params.Songs { 17 <li> 18 <a href={ routes.Song(song) }> 19 { song.Title } 20 if song.LatinTitle != nil { 21 <span>({ *song.LatinTitle })</span> 22 } 23 </a> 24 if len(song.Artists) > 0 { 25 <span>by </span> 26 for i, artist := range song.Artists { 27 if i > 0 { 28 <span>, </span> 29 } 30 <a href={ routes.Artist(artist.Artist) }> 31 { artist.Artist.Name } 32 if artist.Artist.LatinName != nil { 33 <span>({ *artist.Artist.LatinName })</span> 34 } 35 </a> 36 } 37 } 38 if len(song.Releases) > 0 { 39 <span>on </span> 40 <a href={ routes.Release(song.Releases[0].Release) }> 41 { song.Releases[0].Release.Title } 42 if song.Releases[0].Release.LatinTitle != nil { 43 <span>({ *song.Releases[0].Release.LatinTitle })</span> 44 } 45 </a> 46 } 47 </li> 48 } 49 </ol> 50 } 51 </section> 52 } 53 }