A set of composer fixes (#1187)

* Don't insert a newline on cmd+entrl (close #1173)

* Don't linkify selected text on url-paste (close #1149)

* Disable the adult content controls if there is no media on the post (close #1169)
This commit is contained in:
Paul Frazee 2023-08-16 10:46:52 -07:00 committed by GitHub
parent 819340dd3c
commit 5e63d3164b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 66 additions and 42 deletions

View file

@ -16,9 +16,11 @@ export const snapPoints = ['50%']
export const Component = observer(function Component({
labels,
hasMedia,
onChange,
}: {
labels: string[]
hasMedia: boolean
onChange: (labels: string[]) => void
}) {
const pal = usePalette('default')
@ -74,46 +76,59 @@ export const Component = observer(function Component({
</Button>
) : null}
</View>
<View style={s.flexRow}>
<SelectableBtn
testID="sexualLabelBtn"
selected={selected.includes('sexual')}
left
label="Suggestive"
onSelect={() => toggleAdultLabel('sexual')}
accessibilityHint=""
style={s.flex1}
/>
<SelectableBtn
testID="nudityLabelBtn"
selected={selected.includes('nudity')}
label="Nudity"
onSelect={() => toggleAdultLabel('nudity')}
accessibilityHint=""
style={s.flex1}
/>
<SelectableBtn
testID="pornLabelBtn"
selected={selected.includes('porn')}
label="Porn"
right
onSelect={() => toggleAdultLabel('porn')}
accessibilityHint=""
style={s.flex1}
/>
</View>
{hasMedia ? (
<>
<View style={s.flexRow}>
<SelectableBtn
testID="sexualLabelBtn"
selected={selected.includes('sexual')}
left
label="Suggestive"
onSelect={() => toggleAdultLabel('sexual')}
accessibilityHint=""
style={s.flex1}
/>
<SelectableBtn
testID="nudityLabelBtn"
selected={selected.includes('nudity')}
label="Nudity"
onSelect={() => toggleAdultLabel('nudity')}
accessibilityHint=""
style={s.flex1}
/>
<SelectableBtn
testID="pornLabelBtn"
selected={selected.includes('porn')}
label="Porn"
right
onSelect={() => toggleAdultLabel('porn')}
accessibilityHint=""
style={s.flex1}
/>
</View>
<Text style={[pal.text, styles.adultExplainer]}>
{selected.includes('sexual') ? (
<>Pictures meant for adults.</>
) : selected.includes('nudity') ? (
<>Artistic or non-erotic nudity.</>
) : selected.includes('porn') ? (
<>Sexual activity or erotic nudity.</>
) : (
<>If none are selected, suitable for all ages.</>
)}
</Text>
<Text style={[pal.text, styles.adultExplainer]}>
{selected.includes('sexual') ? (
<>Pictures meant for adults.</>
) : selected.includes('nudity') ? (
<>Artistic or non-erotic nudity.</>
) : selected.includes('porn') ? (
<>Sexual activity or erotic nudity.</>
) : (
<>If none are selected, suitable for all ages.</>
)}
</Text>
</>
) : (
<View>
<Text style={[pal.textLight]}>
<Text type="md-bold" style={[pal.textLight]}>
Not Applicable
</Text>
. This warning is only available for posts with media attached.
</Text>
</View>
)}
</View>
</ScrollView>