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