UNPKG

@mittwald/react-use-promise

Version:

Simple and declarative use of Promises in your React components. Observe their state and refresh them in various advanced ways.

15 lines (14 loc) 776 B
import { act, render as testingLibRender } from "@testing-library/react"; import React, { createElement, Suspense } from "react"; import { ErrorBoundary } from "react-error-boundary"; export const sleep = (ms) => new Promise((res) => setTimeout(res, ms)); export const squareAsync = async (value, sleepTimeMs) => { await sleep(sleepTimeMs); return value * value; }; export const render = async (ui) => { return await act(async () => testingLibRender(ui)); }; const loadingView = React.createElement("span", { "data-testid": "loading-view" }, "Loading"); export const RenderWithLoadingView = (props) => (React.createElement(ErrorBoundary, { fallback: "ErrorFallback" }, React.createElement(Suspense, { fallback: loadingView }, createElement(props.children))));