import { useState, useEffect } from 'react'; import { Shield, Lock, QrCode, Mail, Phone, MapPin, RefreshCw, Eye, EyeOff, Clock, Copy, Check, Link, User, LogIn } from 'lucide-react'; export default function IdentityMaskingService() { const [user, setUser] = useState(null); const [originalData, setOriginalData] = useState({ ssn: '', address: '', phone: '', email: '', fullName: '', dateOfBirth: '' }); const [maskedData, setMaskedData] = useState(null); const [loading, setLoading] = useState(false); const [showQR, setShowQR] = useState(false); const [showOriginal, setShowOriginal] = useState(false); const [expiryTime, setExpiryTime] = useState(24); // Default 24 hours const [copied, setCopied] = useState({}); const [shareableUrl, setShareableUrl] = useState(''); const [isLoggedIn, setIsLoggedIn] = useState(false); const [existingMask, setExistingMask] = useState(null); const [authMode, setAuthMode] = useState('login'); // 'login' or 'signup' const [authData, setAuthData] = useState({ email: '', password: '', confirmPassword: '' }); const [authError, setAuthError] = useState(''); useEffect(() => { checkExistingMask(); checkLoginStatus(); }, []); const checkLoginStatus = async () => { try { const response = await fetch('https://www.sitebrew.ai/api/JszWPw/auth/status'); const data = await response.json(); setIsLoggedIn(data.isLoggedIn); if (data.isLoggedIn) { setUser(data.user); loadUserData(); } } catch (error) { console.error('Auth check failed:', error); } }; const checkExistingMask = async () => { if (!user) return; try { const response = await fetch(`https://www.sitebrew.ai/api/JszWPw/identities/${user.id}`); const data = await response.json(); if (data.document && !isExpired(data.document.expiresAt)) { setExistingMask(data.document); setMaskedData(data.document.maskedData); setShareableUrl(data.document.shareableUrl); } } catch (error) { console.error('Failed to check existing mask:', error); } }; const isExpired = (expiryDate) => { return new Date(expiryDate) < new Date(); }; const loadUserData = async () => { try { const response = await fetch('https://www.sitebrew.ai/api/JszWPw/user-data'); const data = await response.json(); setOriginalData(data.document); } catch (error) { console.error('Failed to load user data:', error); } }; const copyToClipboard = async (text, field) => { try { await navigator.clipboard.writeText(text); setCopied({ ...copied, [field]: true }); setTimeout(() => setCopied({ ...copied, [field]: false }), 2000); } catch (error) { console.error('Failed to copy:', error); } }; const generateShareableUrl = async (maskId) => { const url = `${window.location.origin}/mask/${maskId}`; setShareableUrl(url); return url; }; const generateMaskedIdentity = async () => { if (existingMask) { alert('You already have an active masked identity. Please wait for it to expire or delete it.'); return; } setLoading(true); try { // Verify input data const verificationResponse = await fetch('https://www.sitebrew.ai/api/JszWPw/verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ document: originalData }) }); if (!verificationResponse.ok) { throw new Error('Verification failed'); } // Generate masked identity using AI const aiResponse = await fetch('https://www.sitebrew.ai/api/genai', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ messages: [ { role: "system", content: "Generate a masked identity that maintains demographic similarity while protecting real information" }, { role: "user", content: JSON.stringify(originalData) } ] }) }); const maskedIdentity = await aiResponse.json(); const expiryDate = new Date(Date.now() + expiryTime * 60 * 60 * 1000); // Create new masked identity record const response = await fetch('https://www.sitebrew.ai/api/JszWPw/identities', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ document: { userId: user.id, originalData: originalData, maskedData: JSON.parse(maskedIdentity.message.content), createdAt: new Date().toISOString(), expiresAt: expiryDate.toISOString(), isActive: true } }) }); const newMask = await response.json(); const shareableUrl = await generateShareableUrl(newMask.document._id); setMaskedData(JSON.parse(maskedIdentity.message.content)); setShowQR(true); setExistingMask(newMask.document); } catch (error) { console.error('Error:', error); alert('Failed to generate masked identity. Please try again.'); } finally { setLoading(false); } }; const deleteMaskedIdentity = async () => { if (!existingMask) return; try { await fetch(`https://www.sitebrew.ai/api/JszWPw/identities/${existingMask._id}`, { method: 'DELETE' }); setExistingMask(null); setMaskedData(null); setShareableUrl(''); } catch (error) { console.error('Failed to delete masked identity:', error); } }; // Authentication Functions const handleAuth = async (e) => { e.preventDefault(); setAuthError(''); if (authMode === 'signup' && authData.password !== authData.confirmPassword) { setAuthError('Passwords do not match'); return; } try { const endpoint = authMode === 'login' ? 'login' : 'signup'; const response = await fetch(`https://www.sitebrew.ai/api/JszWPw/auth/${endpoint}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ document: { email: authData.email, password: authData.password } }) }); const data = await response.json(); if (!response.ok) { throw new Error(data.message || 'Authentication failed'); } setUser(data.user); setIsLoggedIn(true); // If signing up, automatically log in if (authMode === 'signup') { await handleAuth({ preventDefault: () => {} }); // Auto login after signup } } catch (error) { setAuthError(error.message); } }; const handleLogout = async () => { try { await fetch('https://www.sitebrew.ai/api/JszWPw/auth/logout', { method: 'POST' }); setUser(null); setIsLoggedIn(false); setMaskedData(null); setOriginalData({ ssn: '', address: '', phone: '', email: '', fullName: '', dateOfBirth: '' }); } catch (error) { console.error('Logout failed:', error); } }; const LoginForm = () => (

{authMode === 'login' ? 'Login' : 'Create Account'}

{authMode === 'login' ? 'Access your secure identity mask' : 'Start protecting your identity'}

{authError && (
{authError}
)}
setAuthData({ ...authData, email: e.target.value })} placeholder="Enter your email" />
setAuthData({ ...authData, password: e.target.value })} placeholder="Enter your password" />
{authMode === 'signup' && (
setAuthData({ ...authData, confirmPassword: e.target.value })} placeholder="Confirm your password" />
)}
); const Header = () => (

Identity Shield

Secure Identity Masking Service

{isLoggedIn && ( )}
); return (
{!isLoggedIn ? ( ) : ( <>
setOriginalData({...originalData, fullName: e.target.value})} placeholder="Enter your full name" />
setOriginalData({...originalData, ssn: e.target.value})} placeholder="XXX-XX-XXXX" />
setOriginalData({...originalData, dateOfBirth: e.target.value})} />
setOriginalData({...originalData, address: e.target.value})} placeholder="Enter your address" />
setOriginalData({...originalData, phone: e.target.value})} placeholder="(XXX) XXX-XXXX" />
setOriginalData({...originalData, email: e.target.value})} placeholder="Enter your email" />
{maskedData && (

Masked Identity

Expires in: {Math.ceil((new Date(existingMask?.expiresAt) - new Date()) / (1000 * 60 * 60))}h
{Object.entries(maskedData).map(([key, value]) => (

{value}

))}
{showQR && (
)}
)} )}
); }