diff options
Diffstat (limited to 'src/view/com/composer/labels/LabelsBtn.tsx')
-rw-r--r-- | src/view/com/composer/labels/LabelsBtn.tsx | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/view/com/composer/labels/LabelsBtn.tsx b/src/view/com/composer/labels/LabelsBtn.tsx new file mode 100644 index 000000000..f41dd2600 --- /dev/null +++ b/src/view/com/composer/labels/LabelsBtn.tsx @@ -0,0 +1,53 @@ +import React from 'react' +import {StyleSheet} from 'react-native' +import {observer} from 'mobx-react-lite' +import {Button} from 'view/com/util/forms/Button' +import {usePalette} from 'lib/hooks/usePalette' +import {useStores} from 'state/index' +import {ShieldExclamation} from 'lib/icons' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' + +export const LabelsBtn = observer(function LabelsBtn({ + labels, + onChange, +}: { + labels: string[] + onChange: (v: string[]) => void +}) { + const pal = usePalette('default') + const store = useStores() + + return ( + <Button + type="default-light" + testID="labelsBtn" + style={styles.button} + accessibilityLabel="Content warnings" + accessibilityHint="" + onPress={() => + store.shell.openModal({name: 'self-label', labels, onChange}) + }> + <ShieldExclamation style={pal.link} size={26} /> + {labels.length > 0 ? ( + <FontAwesomeIcon + icon="check" + size={16} + style={pal.link as FontAwesomeIconStyle} + /> + ) : null} + </Button> + ) +}) + +const styles = StyleSheet.create({ + button: { + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: 14, + marginRight: 4, + }, + label: { + maxWidth: 100, + }, +}) |