1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-24 15:59:41 +02:00

feat(sidebar): implement new design [EE-3447] (#7118)

This commit is contained in:
Chaim Lev-Ari 2022-06-28 10:42:42 +03:00 committed by GitHub
parent e5e57978af
commit ed8f9b5931
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 1928 additions and 857 deletions

View file

@ -1,26 +1,30 @@
import { PropsWithChildren, ReactNode } from 'react';
import styles from './SidebarSection.module.css';
import { useSidebarState } from './useSidebarState';
interface Props {
title: ReactNode;
label?: string;
title: string;
renderTitle?: (className: string) => ReactNode;
}
export function SidebarSection({
title,
label,
renderTitle,
children,
}: PropsWithChildren<Props>) {
const labelText = typeof title === 'string' ? title : label;
const { isOpen } = useSidebarState();
const titleClassName =
'ml-3 text-sm text-gray-3 be:text-gray-6 transition-all duration-500 ease-in-out';
return (
<>
<li className={styles.sidebarTitle}>{title}</li>
<div>
{renderTitle
? renderTitle(titleClassName)
: isOpen && <li className={titleClassName}>{title}</li>}
<nav aria-label={labelText}>
<nav aria-label={title} className="mt-4">
<ul>{children}</ul>
</nav>
</>
</div>
);
}