about summary refs log tree commit diff
path: root/bskyembed/src/util/verification-state.ts
blob: 29355e511ce12f17a9897120f628a3f1549a40da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import * as bsky from '../types/bsky'

export type VerificationState = {
  role: 'default' | 'verifier'
  isVerified: boolean
}

export function getVerificationState({
  profile,
}: {
  profile?: bsky.profile.AnyProfileView
}): VerificationState {
  if (!profile || !profile.verification) {
    return {
      role: 'default',
      isVerified: false,
    }
  }

  const {verifiedStatus, trustedVerifierStatus} = profile.verification
  const isVerifiedUser = ['valid', 'invalid'].includes(verifiedStatus)
  const isVerifierUser = ['valid', 'invalid'].includes(trustedVerifierStatus)
  const isVerified =
    (isVerifiedUser && verifiedStatus === 'valid') ||
    (isVerifierUser && trustedVerifierStatus === 'valid')

  return {
    role: isVerifierUser ? 'verifier' : 'default',
    isVerified,
  }
}