diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-08-09 17:34:16 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-09 17:34:16 -0700 |
commit | 03d152675ee1ce208856498acf7285fbf07fd45b (patch) | |
tree | 70803ebe16276b3a6b7c350f78d069641a0a6118 /src/view/com/composer/labels/LabelsBtn.tsx | |
parent | 48813a96d686d97009e260d0a87f32d28a631052 (diff) | |
download | voidsky-03d152675ee1ce208856498acf7285fbf07fd45b.tar.zst |
Add self-labeling controls (#1141)
* Add self-label modal * Use the shield-exclamation icon consistently on post moderation * Wire up self-labeling * Bump @atproto/api@0.6.0 * Bump @atproto/dev-env@^0.2.3 * Add e2e test for self-labeling * Fix types
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, + }, +}) |