From be6a41ad0e2e6ebb649508f71cd1377dbf219fda Mon Sep 17 00:00:00 2001 From: David Sevilla Martin Date: Sat, 25 Jan 2020 10:24:42 -0500 Subject: [PATCH] common: fix listItems not working as intended with mithril v2 --- js/src/common/helpers/listItems.tsx | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/js/src/common/helpers/listItems.tsx b/js/src/common/helpers/listItems.tsx index 80f53fce5..e5324af8a 100644 --- a/js/src/common/helpers/listItems.tsx +++ b/js/src/common/helpers/listItems.tsx @@ -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 :
  • + (item.itemName ? 'item-' + item.itemName : ''), + className, + (active ? 'active' : '') + ])} + key={item.attrs?.key || item.itemName}> {item}
  • ; + + + node.state = node.state || {}; + + return node; }); }