mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 04:37:11 +01:00
Initial expanded view in details.
This commit is contained in:
parent
b392a51676
commit
f535dca7b9
14 changed files with 108 additions and 39 deletions
|
|
@ -2,26 +2,34 @@ import React, { useState } from 'react';
|
|||
import classNames from 'classnames';
|
||||
import styles from './MenuLayout.module.css';
|
||||
|
||||
export default function MenuLayout({ menu, selectedOption, onMenuSelect, children }) {
|
||||
const [option, setOption] = useState(selectedOption);
|
||||
export default function MenuLayout({
|
||||
menu,
|
||||
selectedOption,
|
||||
onMenuSelect,
|
||||
className,
|
||||
menuClassName,
|
||||
contentClassName,
|
||||
children,
|
||||
}) {
|
||||
function handleMenuSelect(option) {
|
||||
onMenuSelect(option);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<div className={styles.menu}>
|
||||
{menu.map(item =>
|
||||
item ? (
|
||||
<div className={classNames(styles.container, className)}>
|
||||
<div className={classNames(styles.menu, menuClassName)}>
|
||||
{menu.map(option =>
|
||||
option ? (
|
||||
<div
|
||||
className={classNames(styles.option, { [styles.active]: option === item })}
|
||||
onClick={() => setOption(item)}
|
||||
className={classNames(styles.option, { [styles.active]: option === selectedOption })}
|
||||
onClick={() => handleMenuSelect(option)}
|
||||
>
|
||||
{item}
|
||||
{option}
|
||||
</div>
|
||||
) : null,
|
||||
)}
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
{typeof children === 'function' ? children(option) : children}
|
||||
</div>
|
||||
<div className={classNames(styles.content, contentClassName)}>{children}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
.option {
|
||||
padding: 8px 16px;
|
||||
cursor: pointer;
|
||||
min-width: 140px;
|
||||
min-width: 160px;
|
||||
margin-right: 30px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
line-height: 80px;
|
||||
font-size: var(--font-size-large);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue