Prompt on account removal
This commit is contained in:
@@ -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,17 +35,32 @@ export function AccountDropdownBtn({account}: {account: SessionAccount}) {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
return (
|
return (
|
||||||
<Pressable accessibilityRole="button" style={s.pl10}>
|
<>
|
||||||
<NativeDropdown
|
<Pressable accessibilityRole="button" style={s.pl10}>
|
||||||
testID="accountSettingsDropdownBtn"
|
<NativeDropdown
|
||||||
items={items}
|
testID="accountSettingsDropdownBtn"
|
||||||
accessibilityLabel={_(msg`Account options`)}
|
items={items}
|
||||||
accessibilityHint="">
|
accessibilityLabel={_(msg`Account options`)}
|
||||||
<FontAwesomeIcon
|
accessibilityHint="">
|
||||||
icon="ellipsis-h"
|
<FontAwesomeIcon
|
||||||
style={pal.textLight as FontAwesomeIconStyle}
|
icon="ellipsis-h"
|
||||||
/>
|
style={pal.textLight as FontAwesomeIconStyle}
|
||||||
</NativeDropdown>
|
/>
|
||||||
</Pressable>
|
</NativeDropdown>
|
||||||
|
</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"
|
||||||
|
/>
|
||||||
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user