oncall-engine/grafana-plugin/src/navbar/Header/Header.tsx
Joey Orlando e882e9782d
ci: update oss plugin release process (#5051)
# What this PR does

Related to https://github.com/grafana/irm/pull/137 (**NOTE**: should
only be merged after those changed are back-merged here into
`grafana/oncall`)

## Which issue(s) this PR closes

Also, fixes https://github.com/grafana/oncall/issues/5028

---------

Co-authored-by: Dominik <dominik.broj@grafana.com>
2024-09-23 11:56:16 -04:00

75 lines
2.2 KiB
TypeScript

import React from 'react';
import { cx } from '@emotion/css';
import { Card, Stack, useStyles2 } from '@grafana/ui';
import { APP_SUBTITLE, IS_CURRENT_ENV_OSS } from 'helpers/consts';
import { observer } from 'mobx-react';
import gitHubStarSVG from 'assets/img/github_star.svg';
import logo from 'assets/img/logo.svg';
import { Alerts } from 'containers/Alerts/Alerts';
import { isTopNavbar } from 'plugin/GrafanaPluginRootPage.helpers';
import { getHeaderStyles } from './Header.styles';
export const Header = observer(() => {
const styles = useStyles2(getHeaderStyles);
return (
<>
<div>
<div className={cx('page-header__inner', { [styles.headerTopNavbar]: isTopNavbar() })}>
<div className={styles.navbarLeft}>
<span className={cx('page-header__logo', styles.logoContainer)}>
<img className={styles.pageHeaderImage} src={logo} alt="Grafana OnCall" />
</span>
<div className={cx('page-header__info-block')}>{renderHeading()}</div>
</div>
</div>
</div>
<Banners />
</>
);
function renderHeading() {
if (IS_CURRENT_ENV_OSS) {
return (
<div className={cx('heading')}>
<h1 className={styles.pageHeaderTitle}>Grafana OnCall</h1>
<div className={styles.navbarHeadingContainer}>
<div className={cx('page-header__sub-title')}>{APP_SUBTITLE}</div>
<Card heading={undefined} className={styles.navbarHeading}>
<a
href="https://github.com/grafana/oncall"
className={styles.navbarLink}
target="_blank"
rel="noreferrer"
>
<img src={gitHubStarSVG} className={styles.navbarStarIcon} alt="" /> Star us on GitHub
</a>
</Card>
</div>
</div>
);
}
return (
<>
<Stack>
<h1 className={styles.pageHeaderTitle}>Grafana OnCall</h1>
</Stack>
<div className={cx('page-header__sub-title')}>{APP_SUBTITLE}</div>
</>
);
}
});
const Banners: React.FC = () => {
const styles = useStyles2(getHeaderStyles);
return (
<div className={styles.banners}>
<Alerts />
</div>
);
};