import React, { useCallback, useContext, useEffect, useState } from 'react'; import { Popover, Button, Box, CircularProgress } from '@mui/material'; import { executeEvent } from '../utils/events'; import { MyContext } from '../App'; export const WrapperUserAction = ({ children, address, name, disabled }) => { const {isRunningPublicNode} = useContext(MyContext) const [anchorEl, setAnchorEl] = useState(null); // Handle child element click to open Popover const handleChildClick = (event) => { event.stopPropagation(); // Prevent parent onClick from firing setAnchorEl(event.currentTarget); }; // Handle closing the Popover const handleClose = useCallback(() => { setAnchorEl(null); }, []); // Determine if the popover is open const open = Boolean(anchorEl); const id = open ? address || name : undefined; if(disabled){ return children } return ( <> {/* Render the child without altering dimensions */} {children} {/* Popover */} {open && ( event.stopPropagation(), // Stop propagation inside popover }, }} > {/* Option 1: Message */} {/* Option 2: Send QORT */} {!isRunningPublicNode && ( )} )} ); }; const BlockUser = ({address, name, handleClose})=> { const [isAlreadyBlocked, setIsAlreadyBlocked] = useState(null) const [isLoading, setIsLoading] = useState(false) const {isUserBlocked, addToBlockList, removeBlockFromList} = useContext(MyContext) useEffect(()=> { if(!address) return setIsAlreadyBlocked(isUserBlocked(address, name)) }, [address, setIsAlreadyBlocked, isUserBlocked, name]) return ( ) }