import React, {useEffect, useState} from 'react'; import axios from "axios"; import Loader from "./Loader"; import CopyButton from "./CopyButton"; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faBomb } from '@fortawesome/free-solid-svg-icons'; function Response(props){ const CancelToken = axios.CancelToken; const [requestState, setRequestState] = useState({loading: true, cancel: CancelToken.source()}); useEffect(() => { axios.post('/', {url: "https://" + props.url}, {cancelToken: requestState.cancel.token}) .then((r) => { setRequestState({loading: false, hash: r.data.hash, cancel: requestState.cancel}); }).catch((e) => { if (!axios.isCancel(e)) { setRequestState({loading: false, error: true, cancel: requestState.cancel}); } }); return () => { requestState.cancel.cancel(); }; }, [props.url, requestState.cancel]) let text; let rightItem; if (!requestState.loading) { if (!requestState.error) { rightItem = ; if (props.url.length < 20) { text = The short link for {props.url} is
sho.rest/{requestState.hash}
; } else { text = The short link for your URL is
sho.rest/{requestState.hash}
; } } else { rightItem = ; text = There was an error. } } else { text = } return (
{text}
{rightItem}
) } export default Response;