umami/components/metrics/WebsiteHeader.js

43 lines
1.4 KiB
JavaScript
Raw Normal View History

2023-07-08 19:07:37 +00:00
import { Flexbox, Row, Column, Text, Button, Icon } from 'react-basics';
import Favicon from 'components/common/Favicon';
2020-08-18 07:51:32 +00:00
import ActiveUsers from './ActiveUsers';
import styles from './WebsiteHeader.module.css';
2023-07-08 19:07:37 +00:00
import { useMessages } from 'hooks';
import Icons from 'components/icons';
2020-08-18 07:51:32 +00:00
2023-04-21 15:00:42 +00:00
export function WebsiteHeader({ websiteId, name, domain, children }) {
2023-07-08 19:07:37 +00:00
const { formatMessage, labels } = useMessages();
const links = [
{ label: formatMessage(labels.overview), icon: <Icons.Overview /> },
{ label: formatMessage(labels.realtime), icon: <Icons.Clock /> },
{ label: formatMessage(labels.reports), icon: <Icons.Reports /> },
{ label: formatMessage(labels.eventData), icon: <Icons.Nodes /> },
];
2020-08-18 07:51:32 +00:00
return (
2023-02-02 02:39:54 +00:00
<Row className={styles.header} justifyContent="center">
2023-04-10 03:22:28 +00:00
<Column className={styles.title} variant="two">
2023-02-02 02:39:54 +00:00
<Favicon domain={domain} />
2023-03-31 12:55:28 +00:00
<Text>{name}</Text>
2023-02-02 02:39:54 +00:00
</Column>
2023-07-08 19:07:37 +00:00
<Column className={styles.actions} variant="two">
2023-02-02 02:39:54 +00:00
<ActiveUsers websiteId={websiteId} />
2023-07-08 19:07:37 +00:00
<Flexbox alignItems="center">
{links.map(({ label, icon }) => {
return (
<Button key={label} variant="quiet">
<Icon>{icon}</Icon>
<Text>{label}</Text>
</Button>
);
})}
</Flexbox>
2023-02-02 02:39:54 +00:00
{children}
</Column>
</Row>
2020-08-18 07:51:32 +00:00
);
}
2023-04-21 15:00:42 +00:00
export default WebsiteHeader;