aboutsummaryrefslogtreecommitdiff
path: root/src/components/camera/GalleryIcon.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/camera/GalleryIcon.tsx')
-rw-r--r--src/components/camera/GalleryIcon.tsx43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/components/camera/GalleryIcon.tsx b/src/components/camera/GalleryIcon.tsx
new file mode 100644
index 00000000..c49ace7d
--- /dev/null
+++ b/src/components/camera/GalleryIcon.tsx
@@ -0,0 +1,43 @@
+import {useNavigation} from '@react-navigation/native';
+import React from 'react';
+import {Image, Text, TouchableOpacity, View} from 'react-native';
+import {ScreenType} from '../../types';
+import {navigateToImagePicker} from '../../utils/camera';
+import {styles} from './styles';
+
+interface GalleryIconProps {
+ screenType: ScreenType;
+ title: string;
+ mostRecentPhotoUri: string;
+}
+
+/*
+ * Displays the most recent photo in the user's gallery
+ * On click, navigates to the image picker
+ */
+export const GalleryIcon: React.FC<GalleryIconProps> = ({
+ screenType,
+ title,
+ mostRecentPhotoUri,
+}) => {
+ const navigation = useNavigation();
+ return (
+ <TouchableOpacity
+ onPress={() => navigateToImagePicker(navigation, screenType, title)}
+ style={styles.saveButton}>
+ {mostRecentPhotoUri !== '' ? (
+ <Image
+ source={{uri: mostRecentPhotoUri}}
+ width={40}
+ height={40}
+ style={styles.galleryIcon}
+ />
+ ) : (
+ <View style={styles.galleryIconEmpty} />
+ )}
+ <Text style={styles.saveButtonLabel}>Gallery</Text>
+ </TouchableOpacity>
+ );
+};
+
+export default GalleryIcon;