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>
|
|
|
|
);
|
|
|
|
}
|