import { useQuery } from '@tanstack/react-query'; import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { toast } from 'sonner'; import { useStorage } from '@libs/storage/provider'; import { ArrowLeftIcon, CheckCircleIcon, LoaderIcon } from '@shared/icons'; import { User } from '@shared/user'; import { useOnboarding } from '@stores/onboarding'; import { useNostr } from '@utils/hooks/useNostr'; import { arrayToNIP02 } from '@utils/transform'; export function OnboardEnrichScreen() { const { db } = useStorage(); const { status, data } = useQuery(['trending-profiles-widget'], async () => { const res = await fetch('https://api.nostr.band/v0/trending/profiles'); if (!res.ok) { throw new Error('Error'); } return res.json(); }); const { publish } = useNostr(); const [loading, setLoading] = useState(false); const [follows, setFollows] = useState([]); const navigate = useNavigate(); const setEnrich = useOnboarding((state) => state.toggleEnrich); // toggle follow state const toggleFollow = (pubkey: string) => { const arr = follows.includes(pubkey) ? follows.filter((i) => i !== pubkey) : [...follows, pubkey]; setFollows(arr); }; const submit = async () => { try { setLoading(true); const tags = arrayToNIP02(follows); const event = await publish({ content: '', kind: 3, tags: tags }); // redirect to next step if (event) { db.account.follows = follows; await db.updateAccount('follows', JSON.stringify(follows)); await db.updateAccount('circles', JSON.stringify(follows)); setEnrich(); navigate(-1); } else { setLoading(false); } } catch (e) { setLoading(false); toast(e); } }; return (