diff options
author | Ivan Chen <ivan@tagg.id> | 2021-07-01 16:52:19 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-01 16:52:19 -0400 |
commit | 202c94b6a5f96db228965a64a33e444511eea1cf (patch) | |
tree | 1d1ddbb28dd0276c7e4e0c7e6cb1de13245b2220 /src/components/camera/FlashButton.tsx | |
parent | de390ea6b0f3bfd851029cf038aacd11f269a823 (diff) | |
parent | c08a67f5cc1d622e91828d0557c6716a40ee5bad (diff) |
Merge pull request #482 from IvanIFChen/tma953-camera-screen-merged-with-master
[TMA-953] Camera Screen from Master to PoC Video Branch
Diffstat (limited to 'src/components/camera/FlashButton.tsx')
-rw-r--r-- | src/components/camera/FlashButton.tsx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/components/camera/FlashButton.tsx b/src/components/camera/FlashButton.tsx new file mode 100644 index 00000000..06a4e44e --- /dev/null +++ b/src/components/camera/FlashButton.tsx @@ -0,0 +1,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; |