// Copyright 2017-2020 @polkadot/react-api authors & contributors // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. import React from 'react'; type HOC = (Component: React.ComponentType) => React.ComponentType; export default function withMulti (Component: React.ComponentType, ...hocs: HOC[]): React.ComponentType { // NOTE: Order is reversed so it makes sense in the props, i.e. component // after something can use the value of the preceding version return hocs .reverse() .reduce((Component, hoc): React.ComponentType => hoc(Component), Component ); }