mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-06-13 09:01:00 +00:00
fix: use People Chain API for citizen verification, improve input UI
This commit is contained in:
@@ -15,7 +15,7 @@ interface ExistingCitizenAuthProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const ExistingCitizenAuth: React.FC<ExistingCitizenAuthProps> = ({ onClose }) => {
|
export const ExistingCitizenAuth: React.FC<ExistingCitizenAuthProps> = ({ onClose }) => {
|
||||||
const { api, isApiReady, selectedAccount, connectWallet } = usePezkuwi();
|
const { peopleApi, isPeopleReady, selectedAccount, connectWallet } = usePezkuwi();
|
||||||
|
|
||||||
const [citizenNumber, setCitizenNumber] = useState('');
|
const [citizenNumber, setCitizenNumber] = useState('');
|
||||||
const [step, setStep] = useState<'input' | 'verifying' | 'signing' | 'success' | 'error'>('input');
|
const [step, setStep] = useState<'input' | 'verifying' | 'signing' | 'success' | 'error'>('input');
|
||||||
@@ -23,7 +23,7 @@ export const ExistingCitizenAuth: React.FC<ExistingCitizenAuthProps> = ({ onClos
|
|||||||
const [challenge, setChallenge] = useState<AuthChallenge | null>(null);
|
const [challenge, setChallenge] = useState<AuthChallenge | null>(null);
|
||||||
|
|
||||||
const handleVerifyNFT = async () => {
|
const handleVerifyNFT = async () => {
|
||||||
if (!api || !isApiReady || !selectedAccount) {
|
if (!peopleApi || !isPeopleReady || !selectedAccount) {
|
||||||
setError('Please connect your wallet first');
|
setError('Please connect your wallet first');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -37,8 +37,8 @@ export const ExistingCitizenAuth: React.FC<ExistingCitizenAuthProps> = ({ onClos
|
|||||||
setStep('verifying');
|
setStep('verifying');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Verify Citizen Number
|
// Verify Citizen Number on People Chain
|
||||||
const isValid = await verifyCitizenNumber(api, citizenNumber, selectedAccount.address);
|
const isValid = await verifyCitizenNumber(peopleApi, citizenNumber, selectedAccount.address);
|
||||||
|
|
||||||
if (!isValid) {
|
if (!isValid) {
|
||||||
setError(`Invalid Citizen Number or it doesn't match your wallet`);
|
setError(`Invalid Citizen Number or it doesn't match your wallet`);
|
||||||
@@ -131,10 +131,11 @@ export const ExistingCitizenAuth: React.FC<ExistingCitizenAuthProps> = ({ onClos
|
|||||||
<Label htmlFor="citizenNumber">Citizen Number</Label>
|
<Label htmlFor="citizenNumber">Citizen Number</Label>
|
||||||
<Input
|
<Input
|
||||||
id="citizenNumber"
|
id="citizenNumber"
|
||||||
placeholder="e.g., #42-0-123456"
|
placeholder="#42-0-123456"
|
||||||
value={citizenNumber}
|
value={citizenNumber}
|
||||||
onChange={(e) => setCitizenNumber(e.target.value)}
|
onChange={(e) => setCitizenNumber(e.target.value)}
|
||||||
onKeyDown={(e) => e.key === 'Enter' && handleVerifyNFT()}
|
onKeyDown={(e) => e.key === 'Enter' && handleVerifyNFT()}
|
||||||
|
className="bg-gray-100 dark:bg-gray-800 placeholder:text-gray-400 dark:placeholder:text-gray-500 font-mono"
|
||||||
/>
|
/>
|
||||||
<p className="text-xs text-muted-foreground">
|
<p className="text-xs text-muted-foreground">
|
||||||
Enter your full Citizen Number from your Dashboard (format: #CollectionID-ItemID-6digits)
|
Enter your full Citizen Number from your Dashboard (format: #CollectionID-ItemID-6digits)
|
||||||
|
|||||||
Reference in New Issue
Block a user