1
0
mirror of https://github.com/flarum/core.git synced 2025-08-04 15:37:51 +02:00

common: fix listItems not working as intended with mithril v2

This commit is contained in:
David Sevilla Martin
2020-01-25 10:24:42 -05:00
parent 557bb086f9
commit be6a41ad0e

View File

@@ -29,24 +29,30 @@ export default function listItems(items) {
if (!(items instanceof Array)) items = [items];
return withoutUnnecessarySeparators(items).map(item => {
const isListItem = item.component && item.component.isListItem;
const active = item.component && item.component.isActive && item.component.isActive(item.props);
const className = item.props ? item.props.itemClassName : item.itemClassName;
const isListItem = item.tag?.isListItem;
const active = item.tag?.isActive && item.tag.isActive(item.attrs);
const className = item.attrs?.itemClassName || item.itemClassName;
if (isListItem) {
item.attrs = item.attrs || {};
item.attrs.key = item.attrs.key || item.itemName;
item.key = item.attrs.key;
}
return isListItem
const node = isListItem
? item
: <li className={classNames([
(item.itemName ? 'item-' + item.itemName : ''),
className,
(active ? 'active' : '')
])}
key={item.itemName}>
(item.itemName ? 'item-' + item.itemName : ''),
className,
(active ? 'active' : '')
])}
key={item.attrs?.key || item.itemName}>
{item}
</li>;
node.state = node.state || {};
return node;
});
}