Merge remote-tracking branch 'origin/main' into hailey/0.76

This commit is contained in:
Hailey
2024-11-10 14:23:37 -08:00
4 changed files with 31 additions and 16 deletions
@@ -64,11 +64,14 @@ class SheetViewController: UIViewController {
func updateDetents(contentHeight: CGFloat, preventExpansion: Bool) {
if let sheet = self.sheetPresentationController {
sheet.animateChanges {
self.setDetents(contentHeight: contentHeight, preventExpansion: preventExpansion)
if #available(iOS 16.0, *) {
sheet.invalidateDetents()
}
// Capture `self` weakly to prevent retain cycles.
// Also, capture `sheet` weakly to avoid potential strong references held by animateChanges.
sheet.animateChanges { [weak self, weak sheet] in
guard let weakSelf = self, let weakSheet = sheet else { return }
weakSelf.setDetents(contentHeight: contentHeight, preventExpansion: preventExpansion)
if #available(iOS 16.0, *) {
weakSheet.invalidateDetents()
}
}
}
}
@@ -396,10 +396,14 @@ const ImageItem = ({
placeholderContentFit="cover"
placeholder={{uri: imageSrc.thumbUri}}
accessibilityLabel={imageSrc.alt}
onLoad={e => {
setHasLoaded(true)
onLoad({width: e.source.width, height: e.source.height})
}}
onLoad={
hasLoaded
? undefined
: e => {
setHasLoaded(true)
onLoad({width: e.source.width, height: e.source.height})
}
}
style={{flex: 1, borderRadius}}
accessibilityHint=""
accessibilityIgnoresInvertColors
@@ -228,10 +228,14 @@ const ImageItem = ({
accessibilityHint=""
enableLiveTextInteraction={showControls && !scaled}
accessibilityIgnoresInvertColors
onLoad={e => {
setHasLoaded(true)
onLoad({width: e.source.width, height: e.source.height})
}}
onLoad={
hasLoaded
? undefined
: e => {
setHasLoaded(true)
onLoad({width: e.source.width, height: e.source.height})
}
}
/>
</Animated.View>
</Animated.View>
+7 -3
View File
@@ -113,9 +113,13 @@ export function AutoSizedImage({
accessibilityIgnoresInvertColors
accessibilityLabel={image.alt}
accessibilityHint=""
onLoad={e => {
setFetchedDims({width: e.source.width, height: e.source.height})
}}
onLoad={
fetchedDims
? undefined
: e => {
setFetchedDims({width: e.source.width, height: e.source.height})
}
}
/>
<MediaInsetBorder />