diff --git a/Dockerfile b/Dockerfile index 371e8402c7..32a45d2ca9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25-bookworm AS build-env +FROM golang:1.26-bookworm AS build-env WORKDIR /usr/src/social-app diff --git a/Dockerfile.embedr b/Dockerfile.embedr index 29b042dddc..4f13b6d1a6 100644 --- a/Dockerfile.embedr +++ b/Dockerfile.embedr @@ -1,4 +1,4 @@ -FROM golang:1.25-bookworm AS build-env +FROM golang:1.26-bookworm AS build-env WORKDIR /usr/src/social-app diff --git a/assets/icons/paperPlaneVertical_filled_stroke2_corner1_rounded.svg b/assets/icons/paperPlaneVertical_filled_stroke2_corner1_rounded.svg new file mode 100644 index 0000000000..081ed9c746 --- /dev/null +++ b/assets/icons/paperPlaneVertical_filled_stroke2_corner1_rounded.svg @@ -0,0 +1 @@ + diff --git a/bskyembed/assets/logo_full_name.svg b/bskyembed/assets/logo_full_name.svg index 7e46f1426e..150b3121ea 100644 --- a/bskyembed/assets/logo_full_name.svg +++ b/bskyembed/assets/logo_full_name.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/bskyembed/assets/play_filled_corner0_rounded.svg b/bskyembed/assets/play_filled_corner0_rounded.svg new file mode 100644 index 0000000000..19d951a1b2 --- /dev/null +++ b/bskyembed/assets/play_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/bskyembed/src/components/container.tsx b/bskyembed/src/components/container.tsx index 554d47142e..893319f367 100644 --- a/bskyembed/src/components/container.tsx +++ b/bskyembed/src/components/container.tsx @@ -20,7 +20,7 @@ export function Container({ if (!entry) return let {height} = entry.contentRect - height += 2 // border top and bottom + height += 4 // border-2 = 2px top + 2px bottom if (height !== prevHeight.current) { prevHeight.current = height window.parent.postMessage( @@ -37,7 +37,7 @@ export function Container({ return (
{ if (ref.current && href) { // forwardRef requires preact/compat - let's keep it simple @@ -49,9 +49,7 @@ export function Container({ } }}> {href && } -
- {children} -
+
{children}
) } diff --git a/bskyembed/src/components/embed.tsx b/bskyembed/src/components/embed.tsx index 105c785820..5dbde9426b 100644 --- a/bskyembed/src/components/embed.tsx +++ b/bskyembed/src/components/embed.tsx @@ -14,8 +14,9 @@ import {ComponentChildren, h} from 'preact' import {useMemo} from 'preact/hooks' import infoIcon from '../../assets/circleInfo_stroke2_corner0_rounded.svg' -import playIcon from '../../assets/play_filled_corner2_rounded.svg' +import playIcon from '../../assets/play_filled_corner0_rounded.svg' import starterPackIcon from '../../assets/starterPack.svg' +import {Globe} from '../icons/Globe' import {CONTENT_LABELS, labelsToInfo} from '../labels' import * as bsky from '../types/bsky' import {getRkey} from '../util/rkey' @@ -93,7 +94,7 @@ export function Embed({ />
-

+

{record.author.displayName?.trim() || record.author.handle}

{verification.isVerified && ( @@ -103,7 +104,7 @@ export function Embed({ size={12} /> )} -

+

@{record.author.handle}

@@ -334,13 +335,18 @@ function ExternalEmbed({ /> )}
-

- {toNiceDomain(content.external.uri)} +

+ {content.external.title}

-

{content.external.title}

-

+

{content.external.description}

+
+ +

+ {toNiceDomain(content.external.uri)} +

+
) @@ -374,7 +380,7 @@ function GenericWithImageEmbed({
)}
-

{title}

+

{title}

{subtitle}

@@ -389,7 +395,6 @@ function GenericWithImageEmbed({ ) } -// just the thumbnail and a play button function VideoEmbed({content}: {content: AppBskyEmbedVideo.View}) { let aspectRatio = 1 @@ -398,6 +403,28 @@ function VideoEmbed({content}: {content: AppBskyEmbedVideo.View}) { aspectRatio = clamp(width / height, 1 / 1, 3 / 1) } + const supportsHls = useMemo(() => { + const video = document.createElement('video') + return video.canPlayType('application/vnd.apple.mpegurl') !== '' + }, []) + + if (supportsHls) { + return ( +