Bluesky app fork with some witchin' additions 馃挮
at main 50 lines 1.6 kB view raw
1import {useCallback} from 'react' 2import {type AppBskyActorDefs} from '@atproto/api' 3import {msg} from '@lingui/macro' 4import {useLingui} from '@lingui/react' 5 6import {logger} from '#/logger' 7import {useVerificationsRemoveMutation} from '#/state/queries/verification/useVerificationsRemoveMutation' 8import * as Toast from '#/view/com/util/Toast' 9import {type DialogControlProps} from '#/components/Dialog' 10import * as Prompt from '#/components/Prompt' 11import type * as bsky from '#/types/bsky' 12 13export {useDialogControl as usePromptControl} from '#/components/Dialog' 14 15export function VerificationRemovePrompt({ 16 control, 17 profile, 18 verifications, 19 onConfirm: onConfirmInner, 20}: { 21 control: DialogControlProps 22 profile: bsky.profile.AnyProfileView 23 verifications: AppBskyActorDefs.VerificationView[] 24 onConfirm?: () => void 25}) { 26 const {_} = useLingui() 27 const {mutateAsync: remove} = useVerificationsRemoveMutation() 28 const onConfirm = useCallback(async () => { 29 onConfirmInner?.() 30 try { 31 await remove({profile, verifications}) 32 Toast.show(_(msg`Removed verification`)) 33 } catch (e) { 34 Toast.show(_(msg`Failed to remove verification`), 'xmark') 35 logger.error('Failed to remove verification', { 36 safeMessage: e, 37 }) 38 } 39 }, [_, profile, verifications, remove, onConfirmInner]) 40 41 return ( 42 <Prompt.Basic 43 control={control} 44 title={_(msg`Remove your verification for this account?`)} 45 onConfirm={onConfirm} 46 confirmButtonCta={_(msg`Remove verification`)} 47 confirmButtonColor="negative" 48 /> 49 ) 50}