import React, { ReactElement } from 'react';

// https://github.com/facebook/react/issues/14620#issuecomment-491366098
export const composeContexts = (
  contexts: [React.Context<any>, unknown][],
  // https://stackoverflow.com/a/57253387/2614096
  // children: React.ReactNode
  children: ReactElement | null
) =>
  contexts.reduce((acc, [Context, value]) => {
    return <Context.Provider value={value}>{acc}</Context.Provider>;
  }, children);
