From 1d5015d7d6e55d5984e68aece2da0b4285741f4c Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Wed, 10 Sep 2025 15:25:21 +0530 Subject: [PATCH] fix: author verification --- src/components/ui/link-renderer.tsx | 9 ++++++--- src/contexts/AuthContext.tsx | 1 - src/lib/forum/RelevanceCalculator.ts | 14 ++++---------- src/pages/ProfilePage.tsx | 18 +++++++++++++----- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/components/ui/link-renderer.tsx b/src/components/ui/link-renderer.tsx index 71c6e4a..277075a 100644 --- a/src/components/ui/link-renderer.tsx +++ b/src/components/ui/link-renderer.tsx @@ -9,13 +9,16 @@ interface LinkRendererProps { * Component that renders text with clickable links * Detects URLs and converts them to clickable tags */ -export const LinkRenderer: React.FC = ({ text, className }) => { +export const LinkRenderer: React.FC = ({ + text, + className, +}) => { // URL regex pattern that matches http/https URLs const urlRegex = /(https?:\/\/[^\s]+)/g; - + // Split text by URLs and create array of text segments and URLs const parts = text.split(urlRegex); - + return ( {parts.map((part, index) => { diff --git a/src/contexts/AuthContext.tsx b/src/contexts/AuthContext.tsx index b10e0f5..552591a 100644 --- a/src/contexts/AuthContext.tsx +++ b/src/contexts/AuthContext.tsx @@ -15,7 +15,6 @@ import { import { localDatabase } from '@/lib/database/LocalDatabase'; import { useAppKitAccount, useDisconnect, modal } from '@reown/appkit/react'; -// Removed VerificationStatus type - using EVerificationStatus enum directly interface AuthContextType { currentUser: User | null; diff --git a/src/lib/forum/RelevanceCalculator.ts b/src/lib/forum/RelevanceCalculator.ts index 3c1e1d2..b14eab7 100644 --- a/src/lib/forum/RelevanceCalculator.ts +++ b/src/lib/forum/RelevanceCalculator.ts @@ -284,18 +284,12 @@ export class RelevanceCalculator { return { bonus: 0, isVerified: false }; } - // Apply different bonuses based on verification level + // Apply different bonuses based on verification signals from UserVerificationStatus + // Full bonus if author owns ENS or Ordinal. Otherwise, if merely verified (wallet connected), apply basic bonus let bonus = 0; - if ( - authorStatus?.verificationStatus === - EVerificationStatus.ENS_ORDINAL_VERIFIED - ) { - // Full bonus for ENS/Ordinal owners + if (authorStatus?.hasENS || authorStatus?.hasOrdinal) { bonus = score * (RelevanceCalculator.VERIFICATION_BONUS - 1); - } else if ( - authorStatus?.verificationStatus === EVerificationStatus.WALLET_CONNECTED - ) { - // Lower bonus for basic verified users + } else if (authorStatus?.isVerified) { bonus = score * (RelevanceCalculator.BASIC_VERIFICATION_BONUS - 1); } diff --git a/src/pages/ProfilePage.tsx b/src/pages/ProfilePage.tsx index 5939f39..8fcfba0 100644 --- a/src/pages/ProfilePage.tsx +++ b/src/pages/ProfilePage.tsx @@ -59,7 +59,9 @@ export default function ProfilePage() { const [isEditing, setIsEditing] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [callSign, setCallSign] = useState(''); - const [displayPreference, setDisplayPreference] = useState(EDisplayPreference.WALLET_ADDRESS); + const [displayPreference, setDisplayPreference] = useState( + EDisplayPreference.WALLET_ADDRESS + ); const [walletWizardOpen, setWalletWizardOpen] = useState(false); // Initialize and update local state when user data changes @@ -67,8 +69,11 @@ export default function ProfilePage() { if (currentUser) { // Use the same data source as the display (userInfo) for consistency const currentCallSign = userInfo.callSign || currentUser.callSign || ''; - const currentDisplayPreference = userInfo.displayPreference || currentUser.displayPreference || EDisplayPreference.WALLET_ADDRESS; - + const currentDisplayPreference = + userInfo.displayPreference || + currentUser.displayPreference || + EDisplayPreference.WALLET_ADDRESS; + setCallSign(currentCallSign); setDisplayPreference(currentDisplayPreference); } @@ -174,8 +179,11 @@ export default function ProfilePage() { const handleCancel = () => { // Reset to the same data source as display for consistency const currentCallSign = userInfo.callSign || currentUser.callSign || ''; - const currentDisplayPreference = userInfo.displayPreference || currentUser.displayPreference || EDisplayPreference.WALLET_ADDRESS; - + const currentDisplayPreference = + userInfo.displayPreference || + currentUser.displayPreference || + EDisplayPreference.WALLET_ADDRESS; + setCallSign(currentCallSign); setDisplayPreference(currentDisplayPreference); setIsEditing(false);