From cbeec6319bb9716c3cf729e2134d4eb7f5702358 Mon Sep 17 00:00:00 2001 From: Anton Korzunov Date: Tue, 11 Jun 2019 09:48:36 +1000 Subject: [PATCH] fix: dont use array.find, fixes #9 --- src/focusMerge.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/focusMerge.js b/src/focusMerge.js index 3830d80..f8689b6 100644 --- a/src/focusMerge.js +++ b/src/focusMerge.js @@ -97,11 +97,13 @@ const allParentAutofocusables = entries => ( entries.reduce((acc, node) => acc.concat(parentAutofocusables(node)), []) ); -const reorderNodes = (srcNodes, dstNodes) => ( - srcNodes - .map(dnode => dstNodes.find(({ node }) => dnode === node)) - .filter(Boolean) -); +const reorderNodes = (srcNodes, dstNodes) => { + const remap = new Map(); + // no Set(dstNodes) for IE11 :( + dstNodes.forEach(entity => remap.set(entity.node, entity)); + // remap to dstNodes + return srcNodes.map(node => remap.get(node)).filter(Boolean); +}; export const getFocusabledIn = (topNode) => { const entries = getAllAffectedNodes(topNode).filter(notAGuard);