import React, { FC, useEffect } from 'react'; import { Resource, useResource } from 'react-request-hook'; import { isSuccessResponse } from '@eximchain/dappbot-types/spec/responses'; import { Loader, ErrorBox, SuccessBox, errMsgFromResource } from './helpers'; export interface PrettyRequestProps { resource: () => Resource onSuccess?: (response: ResponseType) => void operation?: string } export const PrettyRequest: FC = ({ resource: req, onSuccess: onComplete, operation }) => { const [response, request] = useResource(req); const { isLoading, data, error } = response; useEffect(function callOnStart() { request(); }, []) useEffect(function handleSuccess() { if (isSuccessResponse(data) && onComplete) { onComplete(data.data); } }, [data]) if (isLoading || (!data && !error)) { return ( ) } return error ? ( ) : ( ) }