From 15ab5cb2e931431949b1bc3898cb4e3f4fac907d Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Thu, 6 Jun 2024 18:20:53 -0700 Subject: [PATCH] switching share to save for android --- .../conversation/topicItem/imageAsset/ImageAsset.jsx | 12 ++++++++---- .../topicItem/imageAsset/useImageAsset.hook.js | 10 ++++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/mobile/src/session/conversation/topicItem/imageAsset/ImageAsset.jsx b/app/mobile/src/session/conversation/topicItem/imageAsset/ImageAsset.jsx index c90d5cca..d3a01f78 100644 --- a/app/mobile/src/session/conversation/topicItem/imageAsset/ImageAsset.jsx +++ b/app/mobile/src/session/conversation/topicItem/imageAsset/ImageAsset.jsx @@ -1,4 +1,4 @@ -import { Text, View, Image, ActivityIndicator, TouchableOpacity } from 'react-native'; +import { Text, View, Image, ActivityIndicator, TouchableOpacity, Platform } from 'react-native'; import { useImageAsset } from './useImageAsset.hook'; import { styles } from './ImageAsset.styled'; import Colors from 'constants/Colors'; @@ -19,12 +19,16 @@ export function ImageAsset({ asset, dismiss }) { style={{ ...styles.main, width: state.imageWidth, height: state.imageHeight }} resizeMode={FastImage.resizeMode.contain} /> )} - - { state.loaded && state.controls && ( - + { state.loaded && state.controls && Platform.OS === 'ios' && ( + )} + { state.loaded && state.controls && Platform.OS !== 'ios' && ( + + + + )} { state.loaded && state.controls && ( diff --git a/app/mobile/src/session/conversation/topicItem/imageAsset/useImageAsset.hook.js b/app/mobile/src/session/conversation/topicItem/imageAsset/useImageAsset.hook.js index 83c07d72..22fd1537 100644 --- a/app/mobile/src/session/conversation/topicItem/imageAsset/useImageAsset.hook.js +++ b/app/mobile/src/session/conversation/topicItem/imageAsset/useImageAsset.hook.js @@ -1,8 +1,9 @@ import { useState, useRef, useEffect, useContext } from 'react'; import { ConversationContext } from 'context/ConversationContext'; -import { Image } from 'react-native'; +import { Image, Platform } from 'react-native'; import { useWindowDimensions } from 'react-native'; import Share from 'react-native-share'; +import RNFetchBlob from "rn-fetch-blob"; export function useImageAsset(asset) { @@ -68,9 +69,14 @@ export function useImageAsset(asset) { const { width, height } = e.nativeEvent; updateState({ imageRatio: width / height }); }, - download: () => { + share: () => { Share.open({ url: state.url }) }, + download: async () => { + const epoch = Math.ceil(Date.now() / 1000); + const dir = Platform.OS === 'ios' ? RNFetchBlob.fs.dirs.DocumentDir : RNFetchBlob.fs.dirs.PictureDir; + const res = await RNFetchBlob.config({path: `${dir}/databag_${epoch}.jpg`}).fetch("GET", state.url, {}); + }, loaded: () => { updateState({ loaded: true }); },