diff options
Diffstat (limited to 'src/lib/hooks/useFollowProfile.ts')
-rw-r--r-- | src/lib/hooks/useFollowProfile.ts | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/src/lib/hooks/useFollowProfile.ts b/src/lib/hooks/useFollowProfile.ts deleted file mode 100644 index 98dd63f5f..000000000 --- a/src/lib/hooks/useFollowProfile.ts +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react' -import {AppBskyActorDefs} from '@atproto/api' -import {useStores} from 'state/index' -import {FollowState} from 'state/models/cache/my-follows' -import {logger} from '#/logger' - -export function useFollowProfile(profile: AppBskyActorDefs.ProfileViewBasic) { - const store = useStores() - const state = store.me.follows.getFollowState(profile.did) - - return { - state, - following: state === FollowState.Following, - toggle: React.useCallback(async () => { - if (state === FollowState.Following) { - try { - await store.agent.deleteFollow( - store.me.follows.getFollowUri(profile.did), - ) - store.me.follows.removeFollow(profile.did) - return { - state: FollowState.NotFollowing, - following: false, - } - } catch (e: any) { - logger.error('Failed to delete follow', {error: e}) - throw e - } - } else if (state === FollowState.NotFollowing) { - try { - const res = await store.agent.follow(profile.did) - store.me.follows.addFollow(profile.did, { - followRecordUri: res.uri, - did: profile.did, - handle: profile.handle, - displayName: profile.displayName, - avatar: profile.avatar, - }) - return { - state: FollowState.Following, - following: true, - } - } catch (e: any) { - logger.error('Failed to create follow', {error: e}) - throw e - } - } - - return { - state: FollowState.Unknown, - following: false, - } - }, [store, profile, state]), - } -} |