"use client"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import type { IUserData, IUserWallet } from "@/interfaces/userdata.interface"; import { CopyButton } from "@/components/ui/copy-button"; import { type ICryptoInUserWalletInfo, ICryptoInWalletInfo, } from "@/interfaces/crypto.interface"; import { doDisconnect, getWallet } from "@/services/account.handler"; import { Bitcoin, Fingerprint, Key, Landmark, Unplug, User, Wallet } from "lucide-react"; import Link from "next/link"; import type React from "react"; import { useEffect, useState } from "react"; export function AccountInfo({ userData, setUserData, isDisconnected, }: { userData: IUserData; setUserData: React.Dispatch>; isDisconnected: boolean; }) { const [isLoaded, setIsLoaded] = useState(false); useEffect(() => { if (!isLoaded) { getWallet().then((res) => { const wallet: IUserWallet = { uat: Date.now(), update_interval: 30_000, owned_cryptos: res.resolved?.UserHasCrypto?.map((el): ICryptoInUserWalletInfo => { return { id: el.Crypto.id, name: el.Crypto.name, value: el.Crypto.value, image: el.Crypto.image, quantity: el.Crypto.quantity, owned_amount: el.amount, created_at: el.Crypto.created_at, updated_at: el.Crypto.updated_at, }; }) || [], }; delete res.resolved?.UserHasCrypto; //@ts-ignore setUserData({ ...userData, ...res.resolved, wallet: wallet, }); console.log(userData); setIsLoaded(true); }); } }, [isLoaded, userData, setUserData]); if (isDisconnected) { return (

Disconnected

Link account
); } return ( {`Your account - ${userData.firstName} ${userData.lastName}`} {userData.pseudo}

{userData.dollarAvailables} $

{`You currently have ${userData.wallet.owned_cryptos.length} crypto(s)`}

Your identity

{userData.id}

); }