2024-06-07 20:17:03 +03:00
|
|
|
|
import InfoError, { ErrorData } from '../info/InfoError';
|
|
|
|
|
import Loader from '../ui/Loader';
|
|
|
|
|
|
2024-12-12 13:17:24 +03:00
|
|
|
|
interface DataLoaderProps {
|
2024-06-07 20:17:03 +03:00
|
|
|
|
isLoading?: boolean;
|
|
|
|
|
error?: ErrorData;
|
|
|
|
|
hasNoData?: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-12 13:17:24 +03:00
|
|
|
|
function DataLoader({ isLoading, hasNoData, error, children }: React.PropsWithChildren<DataLoaderProps>) {
|
|
|
|
|
if (isLoading) {
|
|
|
|
|
return <Loader />;
|
|
|
|
|
}
|
|
|
|
|
if (error) {
|
|
|
|
|
return <InfoError error={error} />;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (hasNoData) {
|
|
|
|
|
return <div className='cc-fade-in w-full text-center p-1'>Данные не загружены</div>;
|
|
|
|
|
} else {
|
|
|
|
|
return <>{children}</>;
|
|
|
|
|
}
|
2024-06-07 20:17:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default DataLoader;
|