diff --git a/src/screens/Settings/AppPasswords.tsx b/src/screens/Settings/AppPasswords.tsx index 65ebdf3d4f..49173b9629 100644 --- a/src/screens/Settings/AppPasswords.tsx +++ b/src/screens/Settings/AppPasswords.tsx @@ -6,7 +6,6 @@ import Animated, { LayoutAnimationConfig, LinearTransition, } from 'react-native-reanimated' -import {type ComAtprotoServerListAppPasswords} from '@atproto/api' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' @@ -33,6 +32,7 @@ import {Loader} from '#/components/Loader' import * as Prompt from '#/components/Prompt' import * as Toast from '#/components/Toast' import {Text} from '#/components/Typography' +import {type com} from '#/lexicons' import {AddAppPasswordDialog} from './components/AddAppPasswordDialog' import * as SettingsList from './components/SettingsList' @@ -135,7 +135,7 @@ export function AppPasswordsScreen({}: Props) { function AppPasswordCard({ appPassword, }: { - appPassword: ComAtprotoServerListAppPasswords.AppPassword + appPassword: com.atproto.server.listAppPasswords.AppPassword }) { const t = useTheme() const {i18n, _} = useLingui() diff --git a/src/screens/Settings/components/AddAppPasswordDialog.tsx b/src/screens/Settings/components/AddAppPasswordDialog.tsx index 5029ad9f16..21b9f1ea1d 100644 --- a/src/screens/Settings/components/AddAppPasswordDialog.tsx +++ b/src/screens/Settings/components/AddAppPasswordDialog.tsx @@ -8,7 +8,6 @@ import Animated, { SlideInRight, SlideOutLeft, } from 'react-native-reanimated' -import {type ComAtprotoServerCreateAppPassword} from '@atproto/api' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' @@ -25,6 +24,7 @@ import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components import {SquareBehindSquare4_Stroke2_Corner0_Rounded as CopyIcon} from '#/components/icons/SquareBehindSquare4' import {Text} from '#/components/Typography' import {IS_WEB} from '#/env' +import {type com} from '#/lexicons' import {CopyButton} from './CopyButton' export function AddAppPasswordDialog({ @@ -70,7 +70,7 @@ function CreateDialogInner({passwords}: {passwords: string[]}) { error: validationError, isPending, } = useMutation< - ComAtprotoServerCreateAppPassword.AppPassword, + com.atproto.server.createAppPassword.AppPassword, Error | DisplayableError >({ mutationFn: async () => { diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts index 12d66dd2cd..4403b1fbd4 100644 --- a/src/state/queries/app-passwords.ts +++ b/src/state/queries/app-passwords.ts @@ -1,39 +1,37 @@ -import {type ComAtprotoServerCreateAppPassword} from '@atproto/api' import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' import {STALE} from '#/state/queries' -import {useAgent} from '../session' +import {com} from '#/lexicons' +import {usePdsClient} from '../session' const RQKEY_ROOT = 'app-passwords' export const RQKEY = () => [RQKEY_ROOT] export function useAppPasswordsQuery() { - const agent = useAgent() + const client = usePdsClient() return useQuery({ staleTime: STALE.MINUTES.FIVE, queryKey: RQKEY(), queryFn: async () => { - const res = await agent.com.atproto.server.listAppPasswords({}) - return res.data.passwords + const data = await client.call(com.atproto.server.listAppPasswords) + return data.passwords }, }) } export function useAppPasswordCreateMutation() { const queryClient = useQueryClient() - const agent = useAgent() + const client = usePdsClient() return useMutation< - ComAtprotoServerCreateAppPassword.OutputSchema, + com.atproto.server.createAppPassword.$OutputBody, Error, {name: string; privileged: boolean} >({ mutationFn: async ({name, privileged}) => { - return ( - await agent.com.atproto.server.createAppPassword({ - name, - privileged, - }) - ).data + return await client.call(com.atproto.server.createAppPassword, { + name, + privileged, + }) }, onSuccess() { queryClient.invalidateQueries({ @@ -45,10 +43,10 @@ export function useAppPasswordCreateMutation() { export function useAppPasswordDeleteMutation() { const queryClient = useQueryClient() - const agent = useAgent() + const client = usePdsClient() return useMutation({ mutationFn: async ({name}) => { - await agent.com.atproto.server.revokeAppPassword({ + await client.call(com.atproto.server.revokeAppPassword, { name, }) }, diff --git a/src/state/queries/handle.ts b/src/state/queries/handle.ts index c53c878d5f..c400e8bd85 100644 --- a/src/state/queries/handle.ts +++ b/src/state/queries/handle.ts @@ -1,8 +1,10 @@ import {useCallback} from 'react' +import {type HandleString} from '@atproto/syntax' import {useMutation, useQueryClient} from '@tanstack/react-query' import {STALE} from '#/state/queries' -import {useAgent} from '#/state/session' +import {useAgent, usePdsClient} from '#/state/session' +import {com} from '#/lexicons' const handleQueryKeyRoot = 'handle' const fetchHandleQueryKey = (handleOrDid: string) => [ @@ -36,11 +38,15 @@ export function useUpdateHandleMutation(opts?: { onSuccess?: (handle: string) => void }) { const queryClient = useQueryClient() - const agent = useAgent() + const client = usePdsClient() return useMutation({ mutationFn: async ({handle}: {handle: string}) => { - await agent.updateHandle({handle}) + // `agent.updateHandle` was a pure alias for this method + await client.call(com.atproto.identity.updateHandle, { + // callers validate the handle before submitting + handle: handle as HandleString, + }) }, onSuccess(_data, variables) { opts?.onSuccess?.(variables.handle)