import React, { useState, useEffect } from 'react'; const NostrConnect = ({ setConnectedPubkey }) => { const [pubkey, setPubkey] = useState(null); const [loading, setLoading] = useState(false); useEffect(() => { if (window.nostr?.getPublicKey) { window.nostr.getPublicKey() .then(pk => { setPubkey(pk); setConnectedPubkey(pk); }) .catch(() => {}); } }, []); const connect = async () => { setLoading(true); try { if (!window.nostr) { throw new Error('Please install a Nostr extension (Alby, Nos2x, etc.)'); } const pk = await window.nostr.getPublicKey(); setPubkey(pk); setConnectedPubkey(pk); setLoading(false); } catch (error) { alert('Failed to connect: ' + error.message); setLoading(false); } }; const disconnect = () => { setPubkey(null); setConnectedPubkey(null); }; if (pubkey) { return (
✅ Connected: {pubkey.slice(0, 8)}...{pubkey.slice(-8)}
); } return ( ); }; export default NostrConnect;