react-overlay-pack
Reusable components to build Tooltip, Popover and Dialog.
Installation
$ yarn add react-overlay-pack
Demo
Usage
ClickOutside
; <ClickOutside onClick= console> <div>content</div></ClickOutside>;
type Props = children: ReactNode void;
DomAlign
; <div ref=thistarget> Target node</div> <DomAlign config= points: 'bl' 'tc' offset: 5 0 target=thistarget resize> <div> Align node </div></DomAlign>
type Props = children: ReactElement<any> config: Object target: ReactElementRef<any> resize?: boolean;
Overlay
; <span ref=thistarget onClick= this> Target node</span>; <Overlay show=thisstateshow target=thistarget onOutsideClick= this resize alignConfig= points: 'tr' 'br' targetOffset: 0 8 transitionConfig= style: transform: 'translateY(-8px)' // From animation: translateY: 0 // To > <div key="div">This is overlay content</div></Overlay>;
type Props = show: boolean children: any onOutsideClick?: void target?: ReactElementRef<any> alignConfig: Object transitionConfig?: Object resize?: boolean;
alignConfig
: https://github.com/yiminghe/dom-align#config-object-detailstransitionConfig
: https://github.com/react-component/tween-one
Dialog
; <Dialog show=thisstateshow onOutsideClick= this> <div key="div">This is content</div></Dialog>;
type Props = show: boolean children: ReactNode onOutsideClick: Function backdropTransition?: Object containerTransition?: Object;
backdropTransition
: https://github.com/react-component/tween-onecontainerTransition
: https://github.com/react-component/tween-one
Portal
Transition
Inspiration
Development
Requirements
- node >= 11.6.0
- yarn >= 1.12.3
- react >= 16
$ yarn install --pure-lockfile$ yarn start
Test
$ yarn run format$ yarn run eslint$ yarn run flow$ yarn run test:watch$ yarn run build
Publish
$ npm version patch$ npm run changeloggit commit & push
CONTRIBUTING
- ⇄ Pull requests and ★ Stars are always welcome.
- For bugs and feature requests, please create an issue.
- Pull requests must be accompanied by passing automated tests.