Bluesky app fork with some witchin' additions 💫

Merge branch 'main' of https://github.com/bluesky-social/social-app

Changed files
+55 -9
patches
src
components
Post
Embed
view
com
util
+22 -2
patches/@sentry+react-native+6.20.0.patch
··· 1 + diff --git a/node_modules/@sentry/react-native/dist/js/tools/sentryMetroSerializer.js b/node_modules/@sentry/react-native/dist/js/tools/sentryMetroSerializer.js 2 + index d7f2350..e9c0368 100644 3 + --- a/node_modules/@sentry/react-native/dist/js/tools/sentryMetroSerializer.js 4 + +++ b/node_modules/@sentry/react-native/dist/js/tools/sentryMetroSerializer.js 5 + @@ -12,12 +12,9 @@ exports.createSentryMetroSerializer = exports.unstable_beforeAssetSerializationP 6 + const crypto = require("crypto"); 7 + const utils_1 = require("./utils"); 8 + const utils_2 = require("./vendor/metro/utils"); 9 + -let countLines; 10 + -try { 11 + - countLines = require('metro/private/lib/countLines'); 12 + -} 13 + -catch (e) { 14 + - countLines = require('metro/src/lib/countLines'); 15 + +const newline = /\r\n?|\n|\u2028|\u2029/g; 16 + +function countLines(string) { 17 + + return (string.match(newline) || []).length + 1; 18 + } 19 + const DEBUG_ID_PLACE_HOLDER = '__debug_id_place_holder__'; 20 + const DEBUG_ID_MODULE_PATH = '__debugid__'; 1 21 diff --git a/node_modules/@sentry/react-native/scripts/expo-upload-sourcemaps.js b/node_modules/@sentry/react-native/scripts/expo-upload-sourcemaps.js 2 - index c282ade..8777755 100755 22 + index b3783b5..d5e3e45 100755 3 23 --- a/node_modules/@sentry/react-native/scripts/expo-upload-sourcemaps.js 4 24 +++ b/node_modules/@sentry/react-native/scripts/expo-upload-sourcemaps.js 5 - @@ -215,7 +215,7 @@ for (const [assetGroupName, assets] of Object.entries(groupedAssets)) { 25 + @@ -218,7 +218,7 @@ for (const [assetGroupName, assets] of Object.entries(groupedAssets)) { 6 26 7 27 const isHermes = assets.find(asset => asset.endsWith('.hbc')); 8 28 const windowsCallback = process.platform === "win32" ? 'node ' : '';
+9
patches/@sentry+react-native+6.20.0.patch.md
··· 1 + # @sentry/react-native/scripts/expo-upload-sourcemaps.js patch 2 + 3 + Lets us specify the output directory for the sourcemaps via an environment variable. 4 + 5 + # @sentry/react-native/dist/js/tools/sentryMetroSerializer.js patch 6 + 7 + Patch of this: https://github.com/getsentry/sentry-react-native/issues/5180#issuecomment-3311772038 8 + 9 + Will be fixed in an upcoming release of @sentry/react-native - remove when available.
+4 -1
src/components/Post/Embed/VideoEmbed/index.tsx
··· 71 71 ) : ( 72 72 <ConstrainedImage 73 73 fullBleed={crop === 'square'} 74 - aspectRatio={constrained || 1}> 74 + aspectRatio={constrained || 1} 75 + // slightly smaller max height than images 76 + // images use 16 / 9, for reference 77 + minMobileAspectRatio={14 / 9}> 75 78 {contents} 76 79 </ConstrainedImage> 77 80 )}
+15 -3
src/components/Post/Embed/VideoEmbed/index.web.tsx
··· 14 14 import {isFirefox} from '#/lib/browser' 15 15 import {ErrorBoundary} from '#/view/com/util/ErrorBoundary' 16 16 import {ConstrainedImage} from '#/view/com/util/images/AutoSizedImage' 17 - import {atoms as a} from '#/alf' 17 + import {atoms as a, useTheme} from '#/alf' 18 18 import {useIsWithinMessage} from '#/components/dms/MessageContext' 19 19 import {useFullscreen} from '#/components/hooks/useFullscreen' 20 20 import { ··· 32 32 embed: AppBskyEmbedVideo.View 33 33 crop?: 'none' | 'square' | 'constrained' 34 34 }) { 35 + const t = useTheme() 35 36 const ref = useRef<HTMLDivElement>(null) 36 37 const {active, setActive, sendPosition, currentActiveView} = 37 38 useActiveVideoWeb() ··· 114 115 sendPosition={sendPosition} 115 116 isAnyViewActive={currentActiveView !== null}> 116 117 {cropDisabled ? ( 117 - <View style={[a.w_full, a.overflow_hidden, {aspectRatio: max ?? 1}]}> 118 + <View 119 + style={[ 120 + a.w_full, 121 + a.overflow_hidden, 122 + {aspectRatio: max ?? 1}, 123 + a.rounded_md, 124 + a.overflow_hidden, 125 + t.atoms.bg_contrast_25, 126 + ]}> 118 127 {contents} 119 128 </View> 120 129 ) : ( 121 130 <ConstrainedImage 122 131 fullBleed={crop === 'square'} 123 - aspectRatio={constrained || 1}> 132 + aspectRatio={constrained || 1} 133 + // slightly smaller max height than images 134 + // images use 16 / 9, for reference 135 + minMobileAspectRatio={14 / 9}> 124 136 {contents} 125 137 </ConstrainedImage> 126 138 )}
+1 -1
src/components/Post/Embed/index.tsx
··· 115 115 <ContentHider 116 116 modui={rest.moderation?.ui('contentMedia')} 117 117 activeStyle={[a.mt_sm]}> 118 - <VideoEmbed embed={embed.view} /> 118 + <VideoEmbed embed={embed.view} crop="constrained" /> 119 119 </ContentHider> 120 120 ) 121 121 }
+4 -2
src/view/com/util/images/AutoSizedImage.tsx
··· 25 25 aspectRatio, 26 26 fullBleed, 27 27 children, 28 + minMobileAspectRatio, 28 29 }: { 29 30 aspectRatio: number 30 31 fullBleed?: boolean 32 + minMobileAspectRatio?: number 31 33 children: React.ReactNode 32 34 }) { 33 35 const t = useTheme() ··· 39 41 const outerAspectRatio = React.useMemo<DimensionValue>(() => { 40 42 const ratio = 41 43 isNative || !gtMobile 42 - ? Math.min(1 / aspectRatio, 16 / 9) // 9:16 bounding box 44 + ? Math.min(1 / aspectRatio, minMobileAspectRatio ?? 16 / 9) // 9:16 bounding box 43 45 : Math.min(1 / aspectRatio, 1) // 1:1 bounding box 44 46 return `${ratio * 100}%` 45 - }, [aspectRatio, gtMobile]) 47 + }, [aspectRatio, gtMobile, minMobileAspectRatio]) 46 48 47 49 return ( 48 50 <View style={[a.w_full]}>