2022-12-13 03:45:38 +00:00
|
|
|
import { Container } from 'react-basics';
|
2020-07-17 08:03:38 +00:00
|
|
|
import Head from 'next/head';
|
2023-01-18 23:05:39 +00:00
|
|
|
import NavBar from 'components/layout/NavBar';
|
2023-03-02 07:59:01 +00:00
|
|
|
import UpdateNotice from 'components/common/UpdateNotice';
|
2023-08-21 09:06:09 +00:00
|
|
|
import { useRequireLogin, useConfig } from 'components/hooks';
|
2023-01-18 23:05:39 +00:00
|
|
|
import styles from './AppLayout.module.css';
|
2020-07-17 08:03:38 +00:00
|
|
|
|
2023-04-21 15:00:42 +00:00
|
|
|
export function AppLayout({ title, children }) {
|
2023-01-31 05:44:07 +00:00
|
|
|
const { user } = useRequireLogin();
|
2023-02-28 04:03:04 +00:00
|
|
|
const config = useConfig();
|
2023-01-31 05:44:07 +00:00
|
|
|
|
2023-08-28 02:56:44 +00:00
|
|
|
if (!user || !config || config?.uiDisabled) {
|
2023-01-31 05:44:07 +00:00
|
|
|
return null;
|
|
|
|
|
}
|
2021-05-13 06:15:37 +00:00
|
|
|
|
2020-07-17 08:03:38 +00:00
|
|
|
return (
|
2023-08-02 21:21:13 +00:00
|
|
|
<div className={styles.layout}>
|
2023-07-27 21:47:41 +00:00
|
|
|
<UpdateNotice user={user} config={config} />
|
2021-05-15 08:29:39 +00:00
|
|
|
<Head>
|
2022-12-13 03:45:38 +00:00
|
|
|
<title>{title ? `${title} | umami` : 'umami'}</title>
|
2020-07-17 08:03:38 +00:00
|
|
|
</Head>
|
2023-04-02 03:03:38 +00:00
|
|
|
<nav className={styles.nav}>
|
2023-01-18 23:05:39 +00:00
|
|
|
<NavBar />
|
2023-04-02 03:03:38 +00:00
|
|
|
</nav>
|
|
|
|
|
<main className={styles.body}>
|
|
|
|
|
<Container>{children}</Container>
|
|
|
|
|
</main>
|
2023-01-18 23:05:39 +00:00
|
|
|
</div>
|
2020-07-17 08:03:38 +00:00
|
|
|
);
|
|
|
|
|
}
|
2023-04-21 15:00:42 +00:00
|
|
|
|
|
|
|
|
export default AppLayout;
|