Share expo-image cache; thumb placeholder; smoother dismiss
Two UX fixes for the peek preview: 1. Black flash on first peek — the preview VC now depends on SDWebImage directly (same version pinned by expo-image) and reads from `SDImageCache.shared`. On open it paints the fullsize synchronously if it's cached (common, since onPressIn prefetches), otherwise paints the thumb as a placeholder while the fullsize loads and swaps in. Also switches the image view to autoresizingMask so the dismiss animation interpolates cleanly without AutoLayout relayout mid-animation. 2. Two-stage dismiss animation on aspect-mismatched thumbnails — drop the explicit `previewForDismissingMenuWithConfiguration` override. With only the highlight provider implemented iOS reverses it end-to-end, which interpolates size and position together instead of snapping back to the preview's original size before translating. https://claude.ai/code/session_015REmux3R9uuEMMJUHxTyQT
This commit is contained in:
@@ -59,12 +59,11 @@ class ExpoBlueskyContextMenuView: ExpoView, UIContextMenuInteractionDelegate {
|
||||
return makeTargetedPreview()
|
||||
}
|
||||
|
||||
func contextMenuInteraction(
|
||||
_ interaction: UIContextMenuInteraction,
|
||||
previewForDismissingMenuWithConfiguration configuration: UIContextMenuConfiguration
|
||||
) -> UITargetedPreview? {
|
||||
return makeTargetedPreview()
|
||||
}
|
||||
// NOTE: Intentionally not implementing
|
||||
// `previewForDismissingMenuWithConfiguration`. iOS reverses the highlight
|
||||
// animation by default, which interpolates size + position together. Supplying
|
||||
// a separate dismiss preview tends to produce a two-stage animation on
|
||||
// aspect-mismatched thumbnails (snap to original size, then translate).
|
||||
|
||||
func contextMenuInteraction(
|
||||
_ interaction: UIContextMenuInteraction,
|
||||
|
||||
Reference in New Issue
Block a user