Improve image cropping on android and introduce aspect ratio field (#1525)
* Fix image cropping on android * Store and use aspect ratio field in post images (close #1392)
This commit is contained in:
parent
6325eff938
commit
d87c232660
4 changed files with 21 additions and 7 deletions
|
@ -11,6 +11,7 @@ const MAX_ASPECT_RATIO = 5 // 5/1
|
|||
interface Props {
|
||||
alt?: string
|
||||
uri: string
|
||||
dimensionsHint?: Dimensions
|
||||
onPress?: () => void
|
||||
onLongPress?: () => void
|
||||
onPressIn?: () => void
|
||||
|
@ -21,6 +22,7 @@ interface Props {
|
|||
export function AutoSizedImage({
|
||||
alt,
|
||||
uri,
|
||||
dimensionsHint,
|
||||
onPress,
|
||||
onLongPress,
|
||||
onPressIn,
|
||||
|
@ -29,7 +31,7 @@ export function AutoSizedImage({
|
|||
}: Props) {
|
||||
const store = useStores()
|
||||
const [dim, setDim] = React.useState<Dimensions | undefined>(
|
||||
store.imageSizes.get(uri),
|
||||
dimensionsHint || store.imageSizes.get(uri),
|
||||
)
|
||||
const [aspectRatio, setAspectRatio] = React.useState<number>(
|
||||
dim ? calc(dim) : 1,
|
||||
|
|
|
@ -93,7 +93,11 @@ export function PostEmbeds({
|
|||
const {images} = embed
|
||||
|
||||
if (images.length > 0) {
|
||||
const items = embed.images.map(img => ({uri: img.fullsize, alt: img.alt}))
|
||||
const items = embed.images.map(img => ({
|
||||
uri: img.fullsize,
|
||||
alt: img.alt,
|
||||
aspectRatio: img.aspectRatio,
|
||||
}))
|
||||
const openLightbox = (index: number) => {
|
||||
store.shell.openLightbox(new ImagesLightbox(items, index))
|
||||
}
|
||||
|
@ -104,12 +108,13 @@ export function PostEmbeds({
|
|||
}
|
||||
|
||||
if (images.length === 1) {
|
||||
const {alt, thumb} = images[0]
|
||||
const {alt, thumb, aspectRatio} = images[0]
|
||||
return (
|
||||
<View style={[styles.imagesContainer, style]}>
|
||||
<AutoSizedImage
|
||||
alt={alt}
|
||||
uri={thumb}
|
||||
dimensionsHint={aspectRatio}
|
||||
onPress={() => openLightbox(0)}
|
||||
onPressIn={() => onPressIn(0)}
|
||||
style={[
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue