import type { AnyProfileView } from '@atcute/bluesky';
import { usePreferencesQuery } from '#/state/queries/preferences';
export type SimpleVerificationState = {
role: 'default' | 'verifier';
isVerified: boolean;
showBadge: boolean;
};
export function useSimpleVerificationState({
profile,
}: {
profile?: AnyProfileView;
}): SimpleVerificationState {
const preferences = usePreferencesQuery();
const prefs = preferences.data?.verificationPrefs || { hideBadges: false };
if (!profile || !profile.verification) {
return {
role: 'default',
isVerified: false,
showBadge: 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,
showBadge: prefs.hideBadges ? false : isVerified,
};
}