Portal/rsconcept/frontend/src/components/wrap/DataLoader.tsx

26 lines
603 B
TypeScript
Raw Normal View History

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;