diff options
author | dan <dan.abramov@gmail.com> | 2024-11-01 03:45:55 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-01 03:45:55 +0000 |
commit | 7a08d61d889328ff5e3b8ba61faab71a5568df2f (patch) | |
tree | 105fd6ef552581048349ca1e756b71daebf7fc20 /src/view/com/composer/videos/VideoPreview.tsx | |
parent | 01c9ac0e13e959bae9ab221cd0a724a70c222772 (diff) | |
download | voidsky-7a08d61d889328ff5e3b8ba61faab71a5568df2f.tar.zst |
Thread composer UI (#6050)
* Basic adding of posts * Switch active post on focus * Conditionally show plus button * Insert posts midthread * Track active/inactive post * Delete posts in a thread * Focus after deletion * Tweak empty post detection * Mix height for active only * Move toolbar with post on web * Fix footer positioning * Post All button * Fix reply to positioning * Improve memoization * Improve memoization for clearVideo * Remove unnecessary argument * Add some manual memoization to fix re-renders * Scroll to bottom on add new * Fix opacity on Android * Add backdrop * Fix videos * Check alt for video too * Clear pending publish on error * Fork alt message by type * Separate placeholder for next posts * Limit hitslop to avoid clashes
Diffstat (limited to 'src/view/com/composer/videos/VideoPreview.tsx')
-rw-r--r-- | src/view/com/composer/videos/VideoPreview.tsx | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/view/com/composer/videos/VideoPreview.tsx b/src/view/com/composer/videos/VideoPreview.tsx index 50a38f976..fff7545a5 100644 --- a/src/view/com/composer/videos/VideoPreview.tsx +++ b/src/view/com/composer/videos/VideoPreview.tsx @@ -9,14 +9,17 @@ import {useAutoplayDisabled} from '#/state/preferences' import {ExternalEmbedRemoveBtn} from '#/view/com/composer/ExternalEmbedRemoveBtn' import {atoms as a, useTheme} from '#/alf' import {PlayButtonIcon} from '#/components/video/PlayButtonIcon' +import {VideoTranscodeBackdrop} from './VideoTranscodeBackdrop' export function VideoPreview({ asset, video, clear, + isActivePost, }: { asset: ImagePickerAsset video: CompressedVideo + isActivePost: boolean setDimensions: (width: number, height: number) => void clear: () => void }) { @@ -42,13 +45,18 @@ export function VideoPreview({ t.atoms.border_contrast_low, {backgroundColor: 'black'}, ]}> - <BlueskyVideoView - url={video.uri} - autoplay={!autoplayDisabled} - beginMuted={true} - forceTakeover={true} - ref={playerRef} - /> + <View style={[a.absolute, a.inset_0]}> + <VideoTranscodeBackdrop uri={asset.uri} /> + </View> + {isActivePost && ( + <BlueskyVideoView + url={video.uri} + autoplay={!autoplayDisabled} + beginMuted={true} + forceTakeover={true} + ref={playerRef} + /> + )} <ExternalEmbedRemoveBtn onRemove={clear} /> {autoplayDisabled && ( <View style={[a.absolute, a.inset_0, a.justify_center, a.align_center]}> |