diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-08-26 18:24:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-26 08:24:46 -0700 |
commit | b70e5b2f387e8de6dac5d388aee1ccbf5b217adc (patch) | |
tree | e540d731ec004e58e1280c6382b00b6947d03e63 /bskyembed/src/util/verification-state.ts | |
parent | 5a074fa37acafb0cf11acbdd0a931411b1c63aa2 (diff) | |
download | voidsky-b70e5b2f387e8de6dac5d388aee1ccbf5b217adc.tar.zst |
Add verification checkmarks to `embed.bsky.app` (#8644)
* update vite+typescript * update atproto api to latest, split out utils * add checkmark to post * add checkie to embed * revert change to example post * fix ext link color
Diffstat (limited to 'bskyembed/src/util/verification-state.ts')
-rw-r--r-- | bskyembed/src/util/verification-state.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/bskyembed/src/util/verification-state.ts b/bskyembed/src/util/verification-state.ts new file mode 100644 index 000000000..29355e511 --- /dev/null +++ b/bskyembed/src/util/verification-state.ts @@ -0,0 +1,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, + } +} |