import React from 'react' import { ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {ScrollView} from 'react-native-gesture-handler' import {Text} from '../com/util/text/Text' import {Button} from '../com/util/forms/Button' import * as Toast from '../com/util/Toast' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {NativeStackScreenProps} from '@react-navigation/native-stack' import {CommonNavigatorParams} from 'lib/routes/types' import {useAnalytics} from 'lib/analytics/analytics' import {useFocusEffect} from '@react-navigation/native' import {ViewHeader} from '../com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useSetMinimalShellMode} from '#/state/shell' import {useModalControls} from '#/state/modals' import {useLanguagePrefs} from '#/state/preferences' import { useAppPasswordsQuery, useAppPasswordDeleteMutation, } from '#/state/queries/app-passwords' import {ErrorScreen} from '../com/util/error/ErrorScreen' import {cleanError} from '#/lib/strings/errors' import * as Prompt from '#/components/Prompt' import {useDialogControl} from '#/components/Dialog' type Props = NativeStackScreenProps export function AppPasswords({}: Props) { const pal = usePalette('default') const {_} = useLingui() const setMinimalShellMode = useSetMinimalShellMode() const {screen} = useAnalytics() const {isTabletOrDesktop} = useWebMediaQueries() const {openModal} = useModalControls() const {data: appPasswords, error} = useAppPasswordsQuery() useFocusEffect( React.useCallback(() => { screen('AppPasswords') setMinimalShellMode(false) }, [screen, setMinimalShellMode]), ) const onAdd = React.useCallback(async () => { openModal({name: 'add-app-password'}) }, [openModal]) if (error) { return ( ) } // no app passwords (empty) state if (appPasswords?.length === 0) { return ( You have not created any app passwords yet. You can create one by pressing the button below. {!isTabletOrDesktop && }