UNPKG

@ozen-ui/kit

Version:

React component library

33 lines (32 loc) 1.02 kB
import { __read } from "tslib"; import { useEffect, useState } from 'react'; import { useStoredValue } from '../../../hooks/useStoredValue'; export var useImageBaseStatus = function (src) { var lastFinishedSrc = useStoredValue(null); var _a = __read(useState(src ? 'loading' : 'error'), 2), status = _a[0], setStatus = _a[1]; var onLoad = function () { setStatus('loaded'); lastFinishedSrc.current = src; }; var onError = function () { setStatus('error'); lastFinishedSrc.current = src; }; var isError = status === 'error'; var isLoaded = status === 'loaded'; var isLoading = status === 'loading'; useEffect(function () { var isAlreadyFinished = lastFinishedSrc.current === src; if (isAlreadyFinished) { return; } setStatus('loading'); }, [src]); return { onLoad: onLoad, onError: onError, isError: isError, isLoaded: isLoaded, isLoading: isLoading, }; };