diff --git a/connectContextRecursive.js b/connectContextRecursive.js new file mode 100644 index 0000000..e5ededf --- /dev/null +++ b/connectContextRecursive.js @@ -0,0 +1,20 @@ +import React from 'react' + +function recursiveConsume(Consumers, Component, props = {}) { + if (!Array.isArray(Consumers)) { + return + } + + const Consumer = Consumers.shift() + + return ( + + { context => ( + Consumers.length === 0 ? + : recursiveConsume(Consumers, Component, Object.assign({}, context, props)) + )} + + ) +} + +export default (...Consumers) => Component => props => recursiveConsume(Array.from(Consumers), Component, props)