UNPKG

zent

Version:

一套前端设计语言和基于React的实现

30 lines (24 loc) 747 B
import React, { Component, PureComponent } from 'react'; import omit from 'lodash/omit'; import { PopoverContextType } from './Popover'; /** * A high order component to expose imperative APIs for popover. * * Adds a popover prop to component. */ export const exposePopover = propName => Base => { return class ExposePopover extends (PureComponent || Component) { static contextTypes = PopoverContextType; render() { const { _zentPopover: popover } = this.context || {}; const context = { [propName]: omit(popover, [ 'registerDescendant', 'unregisterDescendant' ]) }; return <Base {...this.props} {...context} />; } }; }; export default exposePopover('popover');