import React, {useEffect, useState} from 'react';
import axios from "axios";
import Loader from "./Loader";
import CopyButton from "./CopyButton";
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;
if (!requestState.loading) {
if (!requestState.error) {
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 {
text = There was an error.
}
} else {
text =