import React, { useState } from 'react'; import classnames from 'classnames'; import PropTypes from 'prop-types'; const flex = 'flex flex-row justify-between items-center'; const theme = 'bg-indigo-dark text-white'; const ListMenu = ({ items = [], renderer, onClick }) => { const [selectedIndex, setSelectedIndex] = useState(null); const ListItem = ({ item, index, isSelected }) => { const onClickHandler = () => { setSelectedIndex(index); onClick({ item, selectedIndex: index }); item.onClick?.({ ...item, index, isSelected }); }; return (
{renderer && renderer({ ...item, index, isSelected })}
); }; return (
{items.map((item, index) => { return ( ); })}
); }; const noop = () => {}; ListMenu.propTypes = { items: PropTypes.array.isRequired, renderer: PropTypes.func.isRequired, onClick: PropTypes.func, }; ListMenu.defaultProps = { onClick: noop, }; export default ListMenu;