import React, { useCallback, useEffect, useRef, useState } from "react" // import { Handle, Position } from "react-flow-renderer" import {TbResize} from 'react-icons/tb' import {BiCube, BiRefresh} from 'react-icons/bi' import {BsTrash} from 'react-icons/bs' import {CgLayoutGridSmall} from 'react-icons/cg' import {useDrag} from '@use-gesture/react' import { useSpring, animated } from 'react-spring' const MINIMUM_HEIGHT = 600; const MINIMUM_WIDTH = 540; export default function CustomNodeIframe({id, data}){ const [collapsed, setCollapsible] = useState(true) const [{width, height}, api] = useSpring(() => ({width: MINIMUM_WIDTH, height: MINIMUM_HEIGHT })) const [sizeAdjuster, setSizeAdjuster] = useState(false) const [reachable ,setReachable] = useState(false) const [refresh, setRefresh] = useState(0) const dragElement = useRef() const bind = useDrag((state) => { const isResizing = (state?.event.target === dragElement.current); if (isResizing) { api.set({ width: state.offset[0], height: state.offset[1], }); } }, { from: (event) => { const isResizing = (event.target === dragElement.current); if (isResizing) { return [width.get(), height.get()]; } }, }); const isFetchable =useCallback(async () => { return fetch(data.host, {mode: 'no-cors'}).then((res) => { return true }).catch((err)=>{ return false }) }, [data.host]) useEffect(() => { const fetched = setInterval( async () => { const fetch = await isFetchable() if (fetch){ setReachable(true) clearInterval(fetched) } },1000) },[isFetchable]) return (
) }