import PropTypes from 'prop-types'; import { clsm, noop } from '../../utils'; import DataUnavailable from './DataUnavailable'; import Spinner from '../../components/Spinner'; import useCurrentPage from '../../hooks/useCurrentPage'; const PAGE_CENTERED_CONTENT_BASE_CLASSES = [ 'flex-col', 'flex', 'h-screen', 'items-center', 'justify-center', 'left-0', 'text-center', 'top-0', 'w-full' ]; const GridLayout = ({ children, className, hasError, hasData, isLoading, noDataText, title, tryAgainFn, tryAgainText }) => { const currentPage = useCurrentPage(); const isFollowingPage = currentPage === 'following'; return (

{title}

{!isLoading && hasData && (
{children}
)} {!isLoading && !hasData && ( )} {isLoading && (
)}
); }; GridLayout.defaultProps = { className: '', hasError: false, hasData: false, isLoading: false, loadingError: '', noDataText: '', title: '', tryAgainFn: noop, tryAgainText: '' }; GridLayout.propTypes = { children: PropTypes.node.isRequired, className: PropTypes.string, hasError: PropTypes.bool, hasData: PropTypes.bool, isLoading: PropTypes.bool, noDataText: PropTypes.string, title: PropTypes.string, tryAgainFn: PropTypes.func, tryAgainText: PropTypes.string }; export default GridLayout;