import React from 'react';
import PropTypes from 'prop-types';

// Nøster en rekke contexts rundt en react-node, slik at
//   composeContexts([[Context1, verdi1], [Context2, verdi2]], <Node />);
// gir resultatet
// <Context2.Provider value={verdi2}>
//     <Context1.Provider value={verdi1}>
//         <Node />
//     </Context1.Provider>
// </Context2.Provider>
const composeContexts = (contexts, children) =>
	contexts.reduce((acc, [Context, value]) => {
		return <Context.Provider value={value}>{acc}</Context.Provider>;
	}, children);

composeContexts.propTypes = {
	contexts: PropTypes.arrayOf(PropTypes.array).isRequired,
	children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,
};

export { composeContexts };
