import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/vi/figma-code/Classes/FigmaPluginMessenger - Trình nhắn tin Backend'/>

# Lớp FigmaPluginMessenger

Trình nhắn tin cho phía plugin Figma (backend). Nó xử lý việc gửi tin nhắn đến UI Figma và lắng nghe tin nhắn từ UI bằng API nội bộ của Figma `figma.ui`.

## Khởi tạo

Kế thừa từ `FigmaPostAbstract`.

```typescript
import { FigmaPluginMessenger } from '@dxtmisha/figma-code'

const messenger = new FigmaPluginMessenger()
  .make()
  .add('hello-ui', (msg) => console.log('UI:', msg))
```

## Các phương thức công khai

### `make`

Khởi tạo trình lắng nghe tin nhắn bằng API `figma.ui.onmessage`. Nên được gọi một lần để bắt đầu nhận tin nhắn từ UI.

**Trả về:** `this`

```javascript
messenger.make()
```

### `add`

Đăng ký một trình lắng nghe cho một loại tin nhắn cụ thể đến từ UI.

**Tham số:**
- `type: string` — Mã định danh duy nhất cho loại tin nhắn cần lắng nghe.
- `callback: (message: Message) => void` — hàm sẽ thực thi khi có một tin nhắn phù hợp đến.

**Trả về:** `this`

```javascript
messenger.add('resize-ui', (data) => {
  figma.ui.resize(data.width, data.height)
})
```

### `post`

Gửi một tin nhắn đến phía UI Figma.

**Tham số:**
- `type: string` — Mã định danh của tin nhắn (loại).
- `message: Message` — (Tùy chọn) Dữ liệu payload để gửi đến UI.

**Trả về:** `void`

```javascript
messenger.post('selection-data', { 
  ids: figma.currentPage.selection.map(node => node.id) 
})
```
