From 6bae770bf5de8e4085c821d04a6544c7034bcdbe Mon Sep 17 00:00:00 2001 From: sgenoud Date: Sun, 31 Mar 2019 21:04:24 +0200 Subject: [PATCH] feat: Add support for Open Graph cards (#1121) * Add support for Open Graph cards * use and aria-hidden on image to improve a11y --- src/routes/_components/status/Status.html | 13 +++ src/routes/_components/status/StatusCard.html | 91 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 src/routes/_components/status/StatusCard.html diff --git a/src/routes/_components/status/Status.html b/src/routes/_components/status/Status.html index f9c5a1ca..5d1ae410 100644 --- a/src/routes/_components/status/Status.html +++ b/src/routes/_components/status/Status.html @@ -25,6 +25,9 @@ {#if content && (showContent || contentPreloaded)} {/if} + {#if showCard } + + {/if} {#if showMedia } {/if} @@ -54,6 +57,7 @@ "sidebar spoiler-btn spoiler-btn spoiler-btn" "sidebar mentions mentions mentions" "sidebar content content content" + "sidebar card card card" "sidebar media-grp media-grp media-grp" "media media media media" "....... toolbar toolbar toolbar" @@ -87,6 +91,7 @@ "spoiler-btn spoiler-btn" "mentions mentions" "content content" + "card card" "media-grp media-grp" "media media" "details details" @@ -113,6 +118,7 @@ import StatusAuthorHandle from './StatusAuthorHandle.html' import StatusRelativeDate from './StatusRelativeDate.html' import StatusDetails from './StatusDetails.html' + import StatusCard from './StatusCard.html' import StatusToolbar from './StatusToolbar.html' import StatusMediaAttachments from './StatusMediaAttachments.html' import StatusContent from './StatusContent.html' @@ -169,6 +175,7 @@ StatusToolbar, StatusMediaAttachments, StatusContent, + StatusCard, StatusSpoiler, StatusComposeBox, StatusMentions, @@ -253,6 +260,12 @@ ), spoilerShown: ({ $spoilersShown, uuid }) => !!$spoilersShown[uuid], replyShown: ({ $repliesShown, uuid }) => !!$repliesShown[uuid], + showCard: ({ originalStatus, isStatusInNotification, showMedia }) => ( + !isStatusInNotification && + !showMedia && + originalStatus.card && + originalStatus.card.title + ), showMedia: ({ originalStatus, isStatusInNotification }) => ( !isStatusInNotification && originalStatus.media_attachments && diff --git a/src/routes/_components/status/StatusCard.html b/src/routes/_components/status/StatusCard.html new file mode 100644 index 00000000..a18db0d9 --- /dev/null +++ b/src/routes/_components/status/StatusCard.html @@ -0,0 +1,91 @@ + + + {title} + + {#if hasBody} +
+ {#if imageUrl} + + {/if} + {#if description} + + {description} + + {/if} +
+ {/if} +
+ +