すべてのコンポーネント

MotionSwipe

スワイプでアクションを表示し、必要ならスワイプで消せる行。

WebReact Nativeジェスチャー

試してみる

サンプルを準備中…

いちばん短い使い方

Row.jsx
<MotionSwipe
  endActions={<button onClick={() => archive(id)}>Archive</button>}
  dismiss="end"
  onDismiss={() => remove(id)}
>
  <MessagePreview />
</MotionSwipe>;

代わりに処理してくれること

  • 行は横方向のドラッグに追従し、アクションを越えると抵抗し、離したときの速度で落ち着きます。
  • dismiss を指定すると、大きくスワイプするか投げるように払うと行がスライドして出ていき、高さが縮んでから onDismiss(side) が呼ばれます。
  • 縦スクロールはそのまま使え、開いておける行は 1 つだけです。
  • 開いている行をタップすると閉じ、アクションにキーボードフォーカスが当たると表示されます。

こんなときに

  • 受信箱でのアーカイブや削除。
  • 会話をピン留めする。
  • リストから項目を削除する。

props

Prop型デフォルト説明
childrenReactNode行の中身。
startActionsReactNode行を終わり側へドラッグしたとき、始まり側に現れます。
endActionsReactNode行を始まり側へドラッグしたとき、終わり側に現れます。
dismiss'start' | 'end' | 'both'大きくスワイプするか投げるように払うと行が消える側。
onDismiss(side) => void行がスライドして出ていき、縮んだ後に実行されます。ここでデータから項目を削除してください。
onOpenChange(side | null) => void開いた側を受け取って実行されます。行が閉じると null です。
disabledbooleanfalseスワイプを無効にします。
contentClassNamestring行の中身のクラス。インラインスタイルは contentStyle で指定します。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。

ほかの props は描画される要素に渡るので、className、style、イベントハンドラーはいつもどおり使えます。

Web と React Native

startActions は行の終わり側へドラッグしたとき、endActions は始まり側へドラッグしたときに現れます。行の中身の背景は contentClassName で指定します。

React Native でも同じ props とジェスチャーが使えます。

使っているサンプル

検索

入力するとドキュメントを検索します。