From a3334a01a221877d3e06e02f960fda441f3460bd Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 31 Mar 2023 13:17:26 -0500 Subject: Lex refactor (#362) * Remove the hackcheck for upgrades * Rename the PostEmbeds folder to match the codebase style * Updates to latest lex refactor * Update to use new bsky agent * Update to use api package's richtext library * Switch to upsertProfile * Add TextEncoder/TextDecoder polyfill * Add Intl.Segmenter polyfill * Update composer to calculate lengths by grapheme * Fix detox * Fix login in e2e * Create account e2e passing * Implement an e2e mocking framework * Don't use private methods on mobx models as mobx can't track them * Add tooling for e2e-specific builds and add e2e media-picker mock * Add some tests and fix some bugs around profile editing * Add shell tests * Add home screen tests * Add thread screen tests * Add tests for other user profile screens * Add search screen tests * Implement profile imagery change tools and tests * Update to new embed behaviors * Add post tests * Fix to profile-screen test * Fix session resumption * Update web composer to new api * 1.11.0 * Fix pagination cursor parameters * Add quote posts to notifications * Fix embed layouts * Remove youtube inline player and improve tap handling on link cards * Reset minimal shell mode on all screen loads and feed swipes (close #299) * Update podfile.lock * Improve post notfound UI (close #366) * Bump atproto packages --- src/view/com/util/PostEmbeds/index.tsx | 165 --------------------------------- 1 file changed, 165 deletions(-) delete mode 100644 src/view/com/util/PostEmbeds/index.tsx (limited to 'src/view/com/util/PostEmbeds/index.tsx') diff --git a/src/view/com/util/PostEmbeds/index.tsx b/src/view/com/util/PostEmbeds/index.tsx deleted file mode 100644 index 02a8aa90e..000000000 --- a/src/view/com/util/PostEmbeds/index.tsx +++ /dev/null @@ -1,165 +0,0 @@ -import React from 'react' -import { - StyleSheet, - StyleProp, - View, - ViewStyle, - Image as RNImage, -} from 'react-native' -import { - AppBskyEmbedImages, - AppBskyEmbedExternal, - AppBskyEmbedRecord, - AppBskyFeedPost, -} from '@atproto/api' -import {Link} from '../Link' -import {AutoSizedImage} from '../images/AutoSizedImage' -import {ImageLayoutGrid} from '../images/ImageLayoutGrid' -import {ImagesLightbox} from 'state/models/ui/shell' -import {useStores} from 'state/index' -import {usePalette} from 'lib/hooks/usePalette' -import {saveImageModal} from 'lib/media/manip' -import YoutubeEmbed from './YoutubeEmbed' -import ExternalLinkEmbed from './ExternalLinkEmbed' -import {getYoutubeVideoId} from 'lib/strings/url-helpers' -import QuoteEmbed from './QuoteEmbed' - -type Embed = - | AppBskyEmbedRecord.Presented - | AppBskyEmbedImages.Presented - | AppBskyEmbedExternal.Presented - | {$type: string; [k: string]: unknown} - -export function PostEmbeds({ - embed, - style, -}: { - embed?: Embed - style?: StyleProp -}) { - const pal = usePalette('default') - const store = useStores() - if (AppBskyEmbedRecord.isPresented(embed)) { - if ( - AppBskyEmbedRecord.isPresentedRecord(embed.record) && - AppBskyFeedPost.isRecord(embed.record.record) && - AppBskyFeedPost.validateRecord(embed.record.record).success - ) { - return ( - - ) - } - } - if (AppBskyEmbedImages.isPresented(embed)) { - if (embed.images.length > 0) { - const uris = embed.images.map(img => img.fullsize) - const openLightbox = (index: number) => { - store.shell.openLightbox(new ImagesLightbox(uris, index)) - } - const onLongPress = (index: number) => { - saveImageModal({uri: uris[index]}) - } - const onPressIn = (index: number) => { - const firstImageToShow = uris[index] - RNImage.prefetch(firstImageToShow) - uris.forEach(uri => { - if (firstImageToShow !== uri) { - // First image already prefeched above - RNImage.prefetch(uri) - } - }) - } - - if (embed.images.length === 4) { - return ( - - img.thumb)} - onPress={openLightbox} - onLongPress={onLongPress} - onPressIn={onPressIn} - /> - - ) - } else if (embed.images.length === 3) { - return ( - - img.thumb)} - onPress={openLightbox} - onLongPress={onLongPress} - onPressIn={onPressIn} - /> - - ) - } else if (embed.images.length === 2) { - return ( - - img.thumb)} - onPress={openLightbox} - onLongPress={onLongPress} - onPressIn={onPressIn} - /> - - ) - } else { - return ( - - openLightbox(0)} - onLongPress={() => onLongPress(0)} - onPressIn={() => onPressIn(0)} - style={styles.singleImage} - /> - - ) - } - } - } - if (AppBskyEmbedExternal.isPresented(embed)) { - const link = embed.external - const youtubeVideoId = getYoutubeVideoId(link.uri) - - if (youtubeVideoId) { - return - } - - return ( - - - - ) - } - return -} - -const styles = StyleSheet.create({ - imagesContainer: { - marginTop: 4, - }, - singleImage: { - borderRadius: 8, - maxHeight: 500, - }, - extOuter: { - borderWidth: 1, - borderRadius: 8, - marginTop: 4, - }, -}) -- cgit 1.4.1