Move require alt-text to new persistence + context (#1839)

This commit is contained in:
Paul Frazee 2023-11-08 08:52:01 -08:00 committed by GitHub
parent 2acc88e78d
commit 3a211017d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 69 additions and 25 deletions

View file

@ -49,6 +49,7 @@ import {LabelsBtn} from './labels/LabelsBtn'
import {SelectLangBtn} from './select-language/SelectLangBtn'
import {EmojiPickerButton} from './text-input/web/EmojiPicker.web'
import {insertMentionAt} from 'lib/strings/mention-manip'
import {useRequireAltTextEnabled} from '#/state/shell'
type Props = ComposerOpts
export const ComposePost = observer(function ComposePost({
@ -61,6 +62,7 @@ export const ComposePost = observer(function ComposePost({
const pal = usePalette('default')
const {isDesktop, isMobile} = useWebMediaQueries()
const store = useStores()
const requireAltTextEnabled = useRequireAltTextEnabled()
const textInput = useRef<TextInputRef>(null)
const [isKeyboardVisible] = useIsKeyboardVisible({iosUseWillEvents: true})
const [isProcessing, setIsProcessing] = useState(false)
@ -187,7 +189,7 @@ export const ComposePost = observer(function ComposePost({
if (isProcessing || graphemeLength > MAX_GRAPHEME_LENGTH) {
return
}
if (store.preferences.requireAltTextEnabled && gallery.needsAltText) {
if (requireAltTextEnabled && gallery.needsAltText) {
return
}
@ -241,12 +243,8 @@ export const ComposePost = observer(function ComposePost({
const canPost = useMemo(
() =>
graphemeLength <= MAX_GRAPHEME_LENGTH &&
(!store.preferences.requireAltTextEnabled || !gallery.needsAltText),
[
graphemeLength,
store.preferences.requireAltTextEnabled,
gallery.needsAltText,
],
(!requireAltTextEnabled || !gallery.needsAltText),
[graphemeLength, requireAltTextEnabled, gallery.needsAltText],
)
const selectTextInputPlaceholder = replyTo ? 'Write your reply' : `What's up?`
@ -314,7 +312,7 @@ export const ComposePost = observer(function ComposePost({
</>
)}
</View>
{store.preferences.requireAltTextEnabled && gallery.needsAltText && (
{requireAltTextEnabled && gallery.needsAltText && (
<View style={[styles.reminderLine, pal.viewLight]}>
<View style={styles.errorIcon}>
<FontAwesomeIcon

View file

@ -50,6 +50,8 @@ import {
useSetMinimalShellMode,
useColorMode,
useSetColorMode,
useRequireAltTextEnabled,
useSetRequireAltTextEnabled,
} from '#/state/shell'
// TEMPORARY (APP-700)
@ -66,6 +68,8 @@ export const SettingsScreen = withAuthRequired(
const pal = usePalette('default')
const store = useStores()
const setMinimalShellMode = useSetMinimalShellMode()
const requireAltTextEnabled = useRequireAltTextEnabled()
const setRequireAltTextEnabled = useSetRequireAltTextEnabled()
const navigation = useNavigation<NavigationProp>()
const {isMobile} = useWebMediaQueries()
const {screen, track} = useAnalytics()
@ -372,8 +376,8 @@ export const SettingsScreen = withAuthRequired(
type="default-light"
label="Require alt text before posting"
labelType="lg"
isSelected={store.preferences.requireAltTextEnabled}
onPress={store.preferences.toggleRequireAltTextEnabled}
isSelected={requireAltTextEnabled}
onPress={() => setRequireAltTextEnabled(!requireAltTextEnabled)}
/>
</View>