2020-09-27 07:51:29 +00:00
|
|
|
import classNames from 'classnames';
|
2022-12-27 00:57:59 +00:00
|
|
|
import { Banner, Loading } from 'react-basics';
|
2023-04-01 22:44:30 +00:00
|
|
|
import useMessages from 'hooks/useMessages';
|
2023-03-22 04:28:36 +00:00
|
|
|
import styles from './Page.module.css';
|
2022-12-27 00:57:59 +00:00
|
|
|
|
2023-04-21 15:00:42 +00:00
|
|
|
export function Page({ className, error, loading, children }) {
|
2023-04-01 22:44:30 +00:00
|
|
|
const { formatMessage, messages } = useMessages();
|
|
|
|
|
|
2022-12-27 00:57:59 +00:00
|
|
|
if (error) {
|
2023-04-01 22:44:30 +00:00
|
|
|
return <Banner variant="error">{formatMessage(messages.error)}</Banner>;
|
2022-12-27 00:57:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (loading) {
|
2023-01-10 07:59:26 +00:00
|
|
|
return <Loading icon="spinner" size="xl" position="page" />;
|
2022-12-27 00:57:59 +00:00
|
|
|
}
|
2020-08-06 02:04:02 +00:00
|
|
|
|
2022-08-23 07:51:37 +00:00
|
|
|
return <div className={classNames(styles.page, className)}>{children}</div>;
|
2020-08-06 02:04:02 +00:00
|
|
|
}
|
2023-04-21 15:00:42 +00:00
|
|
|
|
|
|
|
|
export default Page;
|