# notify

`tauri-plugin-notification` を使って OS レベルの通知 (macOS は通知センター、Windows はアクションセンター) を投稿します。

## インポート

```tsx
import { notify } from "@fluxlay/react";
```

## シグネチャ

```tsx
interface NotifyOptions {
  title: string;
  body?: string;
}

function notify(options: NotifyOptions): Promise<void>;
```

## 引数

| フィールド | 型       | 説明                                                            |
| ---------- | -------- | --------------------------------------------------------------- |
| `title`    | `string` | 必須。通知タイトルとして表示される。空文字を渡すと 400 になる。 |
| `body`     | `string` | 任意。通知本文として表示される。                                |

## 使い方

```ts
import { notify } from "@fluxlay/react";

await notify({
  title: "Pomodoro 完了",
  body: "5 分間の休憩を取りましょう。"
});
```

## 用途

壁紙 webview からブラウザの `Notification` API は使えません。`Notification.requestPermission()` のプロンプトを表示する UI surface が壁紙 origin に存在しないため、許可を取得できないためです。代わりにホストプロセスが OS の通知権限を所有し、壁紙の代わりに通知を投稿します。

## 備考

- インストール直後の Fluxlay アプリで初回 `notify` を呼ぶと、Fluxlay プロセスに対する OS の通知許可ダイアログが出ることがある。ユーザが拒否しても以降の `notify` は成功扱いで resolve するが、通知は表示されない。
- macOS では署名・notarize 済みの本番ビルドでないと通知が表示されないことがある。開発ビルドではローカルの code-sign 設定によって挙動が変わる。
- SDK 側にレート制限はない。連投を防ぐために、壁紙側で意味のある状態変化に絞って呼ぶこと (1 イベントにつき 1 通知が目安)。
- 通知クリック時のハンドラやアクションボタンは現バージョンでは未対応。`title` と `body` のみサポート。
