import { unwrap } from "@snort/shared"; import { RangeSync, TaggedNostrEvent } from "@snort/system"; import { SnortContext } from "@snort/system-react"; import { useContext, useState } from "react"; import { FormattedMessage, FormattedNumber } from "react-intl"; import AsyncButton from "@/Components/Button/AsyncButton"; import useLogin from "@/Hooks/useLogin"; import { SearchRelays } from "@/Utils/Const"; export default function SyncAccountTool() { const system = useContext(SnortContext); const login = useLogin(); const [scan, setScan] = useState(); const [results, setResults] = useState>([]); async function start() { const relays = Object.entries(login.relays.item) .filter(([, v]) => v.write) .map(([k]) => k); const sync = new RangeSync(system); sync.on("event", evs => { setResults(r => [...r, ...evs]); }); sync.on("scan", t => setScan(t)); await sync.sync({ authors: [unwrap(login.publicKey)], relays: [...relays, ...Object.keys(CONFIG.defaultRelays), ...SearchRelays], }); } return ( <>

{results.length > 0 && (

, }} />

)} {scan !== undefined && (

)} ); }