mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
1import React from 'react'
2import {Pressable} from 'react-native'
3import {
4 FontAwesomeIcon,
5 FontAwesomeIconStyle,
6} from '@fortawesome/react-native-fontawesome'
7import {msg} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
9
10import {usePalette} from '#/lib/hooks/usePalette'
11import {s} from '#/lib/styles'
12import {SessionAccount, useSessionApi} from '#/state/session'
13import {useDialogControl} from '#/components/Dialog'
14import * as Prompt from '#/components/Prompt'
15import * as Toast from '../../com/util/Toast'
16import {DropdownItem, NativeDropdown} from './forms/NativeDropdown'
17
18export function AccountDropdownBtn({account}: {account: SessionAccount}) {
19 const pal = usePalette('default')
20 const {removeAccount} = useSessionApi()
21 const removePromptControl = useDialogControl()
22 const {_} = useLingui()
23
24 const items: DropdownItem[] = [
25 {
26 label: _(msg`Remove account`),
27 onPress: removePromptControl.open,
28 icon: {
29 ios: {
30 name: 'trash',
31 },
32 android: 'ic_delete',
33 web: ['far', 'trash-can'],
34 },
35 },
36 ]
37 return (
38 <>
39 <Pressable accessibilityRole="button" style={s.pl10}>
40 <NativeDropdown
41 testID="accountSettingsDropdownBtn"
42 items={items}
43 accessibilityLabel={_(msg`Account options`)}
44 accessibilityHint="">
45 <FontAwesomeIcon
46 icon="ellipsis-h"
47 style={pal.textLight as FontAwesomeIconStyle}
48 />
49 </NativeDropdown>
50 </Pressable>
51 <Prompt.Basic
52 control={removePromptControl}
53 title={_(msg`Remove from quick access?`)}
54 description={_(
55 msg`This will remove @${account.handle} from the quick access list.`,
56 )}
57 onConfirm={() => {
58 removeAccount(account)
59 Toast.show(_(msg`Account removed from quick access`))
60 }}
61 confirmButtonCta={_(msg`Remove`)}
62 confirmButtonColor="negative"
63 />
64 </>
65 )
66}