All files / src/cascader CascaderLoading.tsx

0% Statements 0/10
0% Branches 0/2
0% Functions 0/3
0% Lines 0/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                                                   
import React, { useEffect, useState } from "react";
import { LoadingTip, ErrorTip } from "../tips";
import { CascaderLoadingProps } from "./CascaderProps";
 
export function CascaderLoading({ onLoad }: CascaderLoadingProps) {
  const [error, setError] = useState(false);
 
  useEffect(() => {
    handleLoad();
  }, []); // eslint-disable-line react-hooks/exhaustive-deps
 
  async function handleLoad() {
    setError(false);
    try {
      await onLoad();
    } catch (_) {
      setError(true);
    }
  }
 
  if (error) {
    return <ErrorTip onRetry={handleLoad} />;
  }
  return <LoadingTip />;
}