Add share intent

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2023-07-29 19:14:19 +03:00
parent a0b7a6310b
commit f33fe2c54b
13 changed files with 224 additions and 26 deletions

View File

@@ -9,8 +9,12 @@ import { AndroidScoped, FileSystem } from 'react-native-file-access';
import { useSelector } from 'react-redux';
import { extension } from 'react-native-mime-types';
import { useDeviceOrientation } from '@react-native-community/hooks';
import { DocumentPickerResponse, pick } from 'react-native-document-picker';
import { ROUTE, RootStackParamList } from '../../types';
import { pick } from 'react-native-document-picker';
import {
documentPickerResponseToAddMemeFile,
ROUTE,
RootStackParamList,
} from '../../types';
import { Meme, Tag } from '../../database';
import { RootState } from '../../state';
import {
@@ -39,9 +43,7 @@ const AddMeme = ({
const isLastFile = index === files.current.length - 1;
const [memeUri, setMemeUri] = useState(file.current.uri);
const [memeFilename, setMemeFilename] = useState(
file.current.name ?? undefined,
);
const [memeFilename, setMemeFilename] = useState(file.current.filename);
const [memeError, setMemeError] = useState<Error>();
const [memeTitle, setMemeTitle] = useState(validateMemeTitle('New Meme'));
const [memeIsFavorite, setMemeIsFavorite] = useState(false);
@@ -105,7 +107,7 @@ const AddMeme = ({
file.current = files.current[index + 1];
setMemeUri(file.current.uri);
setMemeFilename(file.current.name ?? undefined);
setMemeFilename(file.current.filename);
setMemeTitle(validateMemeTitle('New Meme'));
setMemeIsFavorite(false);
setMemeTags(new Map<string, Tag>());
@@ -117,14 +119,16 @@ const AddMeme = ({
setIsSavingAndAddingMore(false);
setIndex(0);
files.current = (await pick({
const response = await pick({
type: allowedMimeTypes,
allowMultiSelection: true,
}).catch(goBack)) as DocumentPickerResponse[];
}).catch(goBack);
if (!response) return;
files.current = documentPickerResponseToAddMemeFile(response);
file.current = files.current[0];
setMemeUri(file.current.uri);
setMemeFilename(file.current.name ?? undefined);
setMemeFilename(file.current.filename);
setMemeTitle(validateMemeTitle('New Meme'));
setMemeIsFavorite(false);
setMemeTags(new Map<string, Tag>());