umami/components/layout/MenuLayout.js

36 lines
900 B
JavaScript
Raw Normal View History

2020-08-09 08:48:43 +02:00
import React, { useState } from 'react';
import classNames from 'classnames';
import styles from './MenuLayout.module.css';
2020-08-09 12:04:48 +02:00
export default function MenuLayout({
menu,
selectedOption,
onMenuSelect,
className,
menuClassName,
contentClassName,
children,
}) {
function handleMenuSelect(option) {
onMenuSelect(option);
}
2020-08-09 08:48:43 +02:00
return (
2020-08-09 12:04:48 +02:00
<div className={classNames(styles.container, className)}>
<div className={classNames(styles.menu, menuClassName)}>
{menu.map(option =>
option ? (
2020-08-09 11:03:37 +02:00
<div
2020-08-09 12:04:48 +02:00
className={classNames(styles.option, { [styles.active]: option === selectedOption })}
onClick={() => handleMenuSelect(option)}
2020-08-09 11:03:37 +02:00
>
2020-08-09 12:04:48 +02:00
{option}
2020-08-09 11:03:37 +02:00
</div>
) : null,
)}
2020-08-09 08:48:43 +02:00
</div>
2020-08-09 12:04:48 +02:00
<div className={classNames(styles.content, contentClassName)}>{children}</div>
2020-08-09 08:48:43 +02:00
</div>
);
}