# xy-trigger

> 基于 React Hooks 的触发器组件

Latest version **0.1.0** (published 2019-11-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install xy-trigger
pnpm add xy-trigger
yarn add xy-trigger
bun add xy-trigger
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2019-11-19 |
| First published | 2019-05-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 28.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | XueYou |
| Maintainers | xueyou2000 |
| Keywords | react, react-component, xy-trigger |

## Links

- npm: https://www.npmjs.com/package/xy-trigger
- Repository: https://github.com/xueyou2000/xy-trigger
- Homepage: https://github.com/xueyou2000/xy-trigger#readme
- Issues: https://github.com/xueyou2000/xy-trigger/issues
- npm.io page: https://npm.io/package/xy-trigger

## Dependencies (5)

- [react](https://npm.io/package/react.md) ^16.12.0
- [react-dom](https://npm.io/package/react-dom.md) ^16.12.0
- [utils-dom](https://npm.io/package/utils-dom.md) ^0.0.70
- [classnames](https://npm.io/package/classnames.md) ^2.2.6
- [utils-hooks](https://npm.io/package/utils-hooks.md) ^0.0.71

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 0.1.0 (latest) — 2019-11-19
- 0.0.95 — 2019-09-03
- 0.0.94 — 2019-05-13
- 0.0.93 — 2019-05-12
- 0.0.92 — 2019-05-12
- 0.0.91 — 2019-05-12
- 0.0.9 — 2019-05-12
- 0.0.8 — 2019-05-12
- 0.0.73 — 2019-05-12
- 0.0.72 — 2019-05-11
- 0.0.71 — 2019-05-11
- 0.0.7 — 2019-05-11
- 0.0.6 — 2019-05-11
- 0.0.5 — 2019-05-10
- 0.0.4 — 2019-05-10
- … 2 more at https://npm.io/package/xy-trigger/versions

## README

| ![IE](https://github.com/alrra/browser-logos/blob/master/src/edge/edge_48x48.png?raw=true) | ![Chrome](https://github.com/alrra/browser-logos/blob/master/src/chrome/chrome_48x48.png?raw=true) | ![Firefox](https://github.com/alrra/browser-logos/blob/master/src/firefox/firefox_48x48.png?raw=true) | ![Opera](https://github.com/alrra/browser-logos/blob/master/src/opera/opera_48x48.png?raw=true) | ![Safari](https://github.com/alrra/browser-logos/blob/master/src/safari/safari_48x48.png?raw=true) |
| ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| IE 10+ ✔                                                                                   | Chrome 31.0+ ✔                                                                                     | Firefox 31.0+ ✔                                                                                       | Opera 30.0+ ✔                                                                                   | Safari 7.0+ ✔                                                                                      |

![NPM version](http://img.shields.io/npm/v/xy-trigger.svg?style=flat-square)
![node version](https://img.shields.io/badge/node.js-%3E=_0.10-green.svg?style=flat-square)
![npm download](https://img.shields.io/npm/dm/xy-trigger.svg?style=flat-square)

[![xy-trigger](https://nodei.co/npm/xy-trigger.png)](https://npmjs.org/package/xy-trigger)

# xy-trigger

触发器组件，包裹一个元素，再此元素被触发时，弹出内容

> Tips: 如果自定义 prefixCls , 必须确保提供的样式有动画或者过度，并且有 position: absolute, 不然元素宽度是 100%

## 安装

```bash
# yarn
yarn add xy-trigger classnames utils-dom utils-hooks
```

## 使用例子

```tsx
import React from "react";
import ReactDOM from "react-dom";
import Trigger from "xy-trigger";
ReactDOM.render(
    <Trigger popup={<span>弹出内容</span>}>
        <button>按钮</button>
    </Trigger>,
    container,
);
```

## API

| 属性               | 说明                   | 类型                                               | 默认值    |
| ------------------ | ---------------------- | -------------------------------------------------- | --------- |
| visible            | 是否可视               | boolean                                            | 无        |
| defaultVisible     | 默认是否可视           | boolean                                            | 无        |
| children           | 包裹元素               | React.ReactNode                                    | 无        |
| popup              | 弹出内容               | React.ReactNode                                    | 无        |
| popupClassName     | 弹出内容类名           | string                                             | 无        |
| popupAlign         | 对齐选项               | DomAlignOption                                     | 无        |
| offsetSize         | 偏移距离               | number                                             | 6         |
| destroyPopupOnHide | 是否隐藏时销毁         | boolean                                            | false     |
| placement          | 显示方向               | PlacementType                                      | 无        |
| onChange           | 改变是否可视事件       | (visible: boolean) => void                         | 无        |
| onAlign            | 对齐事件               | (trigger: HTMLElement, popup: HTMLElement) => void | 无        |
| action             | 触发方式               | TriggerAction[]                                    | ['hover'] |
| mouseDelay         | 鼠标事件判定延迟       | number                                             | 300       |
| stretch            | 是否宽度与目标宽度对齐 | boolean                                            | 无        |
| allowCustom        | 允许自定义组件         | boolean                                            | false     |
| popupClickHide     | 包裹元素点击是否隐藏   | boolean                                            | false     |
| alignRef           | 获取对齐函数           | React.MutableRefObject<Function>                   | -         |

### PlacementType

> "left" | "right" | "top" | "bottom" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight"

### TriggerAction

> "hover" | "click" | "focus" | "contextMenu"

## 开发

```sh
yarn run start
```

## 例子

http://localhost:6006

## 测试

```
yarn run test
```

## 开源许可

xy-trigger is released under the MIT license.

---
_Source: https://npm.io/package/xy-trigger · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
