import React, { memo, useEffect, useState } from 'react' import { InfoBlock } from '../info-block' import { GrVirtualMachine } from 'react-icons/gr' import { useWebsiteContext } from '@app/components/providers/website' export const ProxyBoxWrapper = ({ proxy: defaultProxy, url, activeSubscription, }: { url: string proxy?: string activeSubscription?: boolean }) => { const [proxy, setProxy] = useState(defaultProxy || '') const [visible, setVisible] = useState(false) const { updateWebsite } = useWebsiteContext() const onChangeProxy = (e: React.ChangeEvent) => { setProxy(e?.target?.value) } useEffect(() => { if ( defaultProxy === proxy || proxy === '*************' || !activeSubscription ) { return } const debounce = setTimeout(async () => { if (proxy !== defaultProxy) { try { await updateWebsite({ variables: { url, proxy }, }) } catch (e) { console.error(e) } } }, 2300) return () => clearTimeout(debounce) }, [defaultProxy, proxy, url, updateWebsite, activeSubscription]) const onFocusEvent = () => setVisible(true) const onBlurEvent = () => setVisible(false) const proxyLabel = `${url}-proxy-id` return ( }> ) } export const ProxyBox = memo(ProxyBoxWrapper)