selfhostable, read-only reddit client

Feat: Card View - Use `media` view instead of preview div

Changed files
+13 -2
src
mixins
+13 -2
src/mixins/post.pug
··· 36 36 div.self-text(class='card') 37 37 != convertInlineImageLinks(p.selftext_html) 38 38 div.media-preview(class=`${query.view}`) 39 + - var onclick = query.view != "card" ? `toggleDetails('${p.id}')` : `` 39 40 if query.view == "card" && (p.spoiler || p.over_18) && (isPostGallery(p) || isPostImage(p) || isPostVideo(p)) 40 41 div.spoiler(id=`spoiler_${p.id}`, onclick=`javascript:document.getElementById('spoiler_${p.id}').style.display = 'none';`) 41 42 h2 42 43 != p.over_18 ? 'nsfw' : 'spoiler' 43 44 if isPostGallery(p) 44 45 - var item = postGalleryItems(p)[0] 45 - img(src=item.url onclick=`toggleDetails('${p.id}')`) 46 + if query.view == "card" 47 + div.gallery(class=`${query.view}`) 48 + each item in postGalleryItems(p) 49 + div.gallery-item(class=`${query.view}`) 50 + div.gallery-item-idx(class=`${query.view}`) 51 + | #{`${item.idx}/${item.total}`} 52 + a(href=`/media/${item.url}`) 53 + img(src=item.url loading="lazy") 54 + else 55 + img(src=item.url onclick=onclick) 46 56 else if isPostImage(p) 47 57 - var url = query.view == "card" ? p.url : postThumbnail(p) 48 - img(src=url onclick=`toggleDetails('${p.id}')`) 58 + #{query.view == "card" ? "a href=/media/" + url : span} 59 + img(src=url onclick=onclick) 49 60 else if isPostVideo(p) 50 61 - var decodedVideos = decodePostVideoUrls(p) 51 62 if query.view == "card"