Prompt on account removal

This commit is contained in:
Dan Abramov
2024-08-15 02:40:19 +01:00
parent 16f9939d15
commit 19834b0346
+26 -10
View File
@@ -4,26 +4,27 @@ import {
FontAwesomeIcon, FontAwesomeIcon,
FontAwesomeIconStyle, FontAwesomeIconStyle,
} from '@fortawesome/react-native-fontawesome' } from '@fortawesome/react-native-fontawesome'
import {s} from 'lib/styles'
import {usePalette} from 'lib/hooks/usePalette'
import {DropdownItem, NativeDropdown} from './forms/NativeDropdown'
import * as Toast from '../../com/util/Toast'
import {useSessionApi, SessionAccount} from '#/state/session'
import {useLingui} from '@lingui/react'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {SessionAccount, useSessionApi} from '#/state/session'
import {usePalette} from 'lib/hooks/usePalette'
import {s} from 'lib/styles'
import {useDialogControl} from '#/components/Dialog'
import * as Prompt from '#/components/Prompt'
import * as Toast from '../../com/util/Toast'
import {DropdownItem, NativeDropdown} from './forms/NativeDropdown'
export function AccountDropdownBtn({account}: {account: SessionAccount}) { export function AccountDropdownBtn({account}: {account: SessionAccount}) {
const pal = usePalette('default') const pal = usePalette('default')
const {removeAccount} = useSessionApi() const {removeAccount} = useSessionApi()
const removePromptControl = useDialogControl()
const {_} = useLingui() const {_} = useLingui()
const items: DropdownItem[] = [ const items: DropdownItem[] = [
{ {
label: _(msg`Remove account`), label: _(msg`Remove account`),
onPress: () => { onPress: removePromptControl.open,
removeAccount(account)
Toast.show(_(msg`Account removed from quick access`))
},
icon: { icon: {
ios: { ios: {
name: 'trash', name: 'trash',
@@ -34,6 +35,7 @@ export function AccountDropdownBtn({account}: {account: SessionAccount}) {
}, },
] ]
return ( return (
<>
<Pressable accessibilityRole="button" style={s.pl10}> <Pressable accessibilityRole="button" style={s.pl10}>
<NativeDropdown <NativeDropdown
testID="accountSettingsDropdownBtn" testID="accountSettingsDropdownBtn"
@@ -46,5 +48,19 @@ export function AccountDropdownBtn({account}: {account: SessionAccount}) {
/> />
</NativeDropdown> </NativeDropdown>
</Pressable> </Pressable>
<Prompt.Basic
control={removePromptControl}
title={_(msg`Remove from quick access?`)}
description={_(
msg`This will remove @${account.handle} from the quick access list.`,
)}
onConfirm={() => {
removeAccount(account)
Toast.show(_(msg`Account removed from quick access`))
}}
confirmButtonCta={_(msg`Remove`)}
confirmButtonColor="negative"
/>
</>
) )
} }