1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-21 22:39:41 +02:00
portainer/app/react/components/PageHeader/PageHeader.tsx
Richard Wei a66fd78dc1
feat(ui): apply react pageheader to all pageview EE-3615 (#7178)
Co-authored-by: Chaim Lev-Ari <chiptus@gmail.com>
2022-07-06 09:08:45 +03:00

54 lines
1.3 KiB
TypeScript

import { useRouter } from '@uirouter/react';
import { RefreshCw } from 'react-feather';
import { Button } from '../buttons';
import { Breadcrumbs } from './Breadcrumbs';
import { Crumb } from './Breadcrumbs/Breadcrumbs';
import { HeaderContainer } from './HeaderContainer';
import { HeaderContent } from './HeaderContent';
import { HeaderTitle } from './HeaderTitle';
import styles from './PageHeader.module.css';
interface Props {
reload?: boolean;
loading?: boolean;
onReload?(): Promise<void> | void;
breadcrumbs?: Crumb[];
title: string;
}
export function PageHeader({
title,
breadcrumbs = [],
reload,
loading,
onReload,
}: Props) {
const router = useRouter();
function onClickedRefresh() {
return onReload ? onReload() : router.stateService.reload();
}
return (
<HeaderContainer>
<HeaderContent>
<Breadcrumbs breadcrumbs={breadcrumbs} />
</HeaderContent>
<HeaderTitle title={title}>
{reload && (
<Button
color="link"
size="medium"
onClick={onClickedRefresh}
className={styles.reloadButton}
disabled={loading}
>
<RefreshCw className="feather icon-sm" />
</Button>
)}
</HeaderTitle>
</HeaderContainer>
);
}