blob: 06a4e44ee78b8053f3a49242ede4d503bcc423f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import React, {Dispatch, SetStateAction} from 'react';
import {Text, TouchableOpacity} from 'react-native';
import {FlashMode} from 'react-native-camera';
import FlashOffIcon from '../../assets/icons/camera/flash-off.svg';
import FlashOnIcon from '../../assets/icons/camera/flash-on.svg';
import {styles} from './styles';
interface FlashButtonProps {
flashMode: keyof FlashMode;
setFlashMode: Dispatch<SetStateAction<keyof FlashMode>>;
}
/*
* Toggles between flash on/off modes
*/
export const FlashButton: React.FC<FlashButtonProps> = ({
flashMode,
setFlashMode,
}) => (
<TouchableOpacity
onPress={() => setFlashMode(flashMode === 'on' ? 'off' : 'on')}
style={styles.flashButtonContainer}>
{flashMode === 'on' ? (
<FlashOnIcon
height={30}
width={20}
color={'white'}
style={styles.flashIcon}
/>
) : (
<FlashOffIcon
height={30}
width={20}
color={'white'}
style={styles.flashIcon}
/>
)}
<Text style={styles.saveButtonLabel}>Flash</Text>
</TouchableOpacity>
);
export default FlashButton;
|