mirror of
https://github.com/umami-software/umami.git
synced 2025-12-08 05:12:36 +01:00
* Initial Typescript models. * Re-add realtime data * get distinct sessions for session metrics * Add queries for new schema. * Fix Typo. * Add some api/team endpoints. * Fix destructure error. * Fix getWebsites call. * Ignore typescript build errors. * Fix enum issue. * add clickhouse route to deleteWebsite * Fix Website auth. * Updated lint-staged config. * Add permission checks. * Add user role api. * Fix error when updating website. * Fix isAdmin check. Fix Schema. * Initial conversion to react-basics. * Remove user/team transfer from website update. * delete website in relational query * Fix login secure token creation. * Add event type to event. * Allow user to be added to team with role. * Updated login form. * Add Role to TeamUser. * Add database migration. * Refactored permissions check. Updated redis lib. * Feat/um 114 roles and permissions (#1683) * Auth checkpoint. * Merge branch 'dev' into feat/um-114-roles-and-permissions * Add 02 migration. * Added lib/types. * Updated schema. * Updated roles and permissions logic. * Implement react-basics styles. Fix queries. * Update website details layout. * Add 01 migration. * Fix admin create. * Update react-basics. Co-authored-by: Francis Cao <franciscao@gmail.com> Co-authored-by: Mike Cao <mike@mikecao.com> Co-authored-by: Mike Cao <moocao@gmail.com>
32 lines
1.5 KiB
JavaScript
32 lines
1.5 KiB
JavaScript
import { Container } from 'react-basics';
|
|
import Head from 'next/head';
|
|
import Header from 'components/layout/Header';
|
|
import Footer from 'components/layout/Footer';
|
|
import useLocale from 'hooks/useLocale';
|
|
import { useRouter } from 'next/router';
|
|
|
|
export default function Layout({ title, children, header = true, footer = true }) {
|
|
const { dir } = useLocale();
|
|
const { basePath } = useRouter();
|
|
|
|
return (
|
|
<Container dir={dir} style={{ maxWidth: 1140 }}>
|
|
<Head>
|
|
<title>{title ? `${title} | umami` : 'umami'}</title>
|
|
<link rel="icon" href={`${basePath}/favicon.ico`} />
|
|
<link rel="apple-touch-icon" sizes="180x180" href={`${basePath}/apple-touch-icon.png`} />
|
|
<link rel="icon" type="image/png" sizes="32x32" href={`${basePath}/favicon-32x32.png`} />
|
|
<link rel="icon" type="image/png" sizes="16x16" href={`${basePath}/favicon-16x16.png`} />
|
|
<link rel="manifest" href={`${basePath}/site.webmanifest`} />
|
|
<link rel="mask-icon" href={`${basePath}/safari-pinned-tab.svg`} color="#5bbad5" />
|
|
<meta name="msapplication-TileColor" content="#da532c" />
|
|
<meta name="theme-color" content="#fafafa" media="(prefers-color-scheme: light)" />
|
|
<meta name="theme-color" content="#2f2f2f" media="(prefers-color-scheme: dark)" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
</Head>
|
|
{header && <Header />}
|
|
<main>{children}</main>
|
|
{footer && <Footer />}
|
|
</Container>
|
|
);
|
|
}
|