コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
概要
バージョン管理
変更ログ
API バージョンのアップグレード
SDK バージョンをアップグレードする
Essentials
SDK
API
テスト
Stripe CLI
ツール
ワークベンチ
開発者ダッシュボード
Stripe Shell
Visual Studio Code をご利用の場合
機能
ワークフロー
イベントの送信先
Stripe 健全性アラートファイルのアップロード
AI solutions
エージェントツールキット
Build with an LLM
セキュリティとプライバシー
セキュリティ
プライバシー
Stripe を拡張する
Stripe Apps
    概要
    始める
    アプリを作成する
    Stripe アプリの仕組み
    サンプルアプリ
    アプリを構築する
    シークレットを保存
    API 認証方法
    認証フロー
    サーバー側のロジック
    イベントのリッスン
    さまざまな環境を処理
    サンドボックスのサポートを有効にする
    アプリの設定ページ
    UI を構築する
    アカウント登録
    アプリを配布する
    配布オプション
    アプリをアップロード
    バージョンとリリース
    アプリをテストする
    アプリを公開する
    自分のアプリを宣伝する
    ディープリンクを追加する
    インストールリンクを作成
    UI 拡張機能で役割を割り当て
    インストール後のアクション
    アプリのアナリティクス
    Embedded components
    サードパーティーの Stripe アプリを埋め込む
    Stripe Apps に移行
    拡張機能を移行または構築
    Stripe Apps または Stripe Connect にプラグインを移行
    参照情報
    アプリマニフェスト
    CLI
    拡張 SDK
    権限
    ビューポート
    設計パターン
    コンポーネント
      アコーディオン
      バッジ
      バナー
      BarChart
      ボックス
      ボタン
      ButtonGroup
      チェックボックス
      チップ
      ContextView
      DateField
      ディバイダー
      FocusView
      FormFieldGroup
      アイコン
      Img
      インライン
      LineChart
      Link
      リスト
      メニュー
      PropertyList
      ラジオ
      選択してください
      SettingsView
      SignInView
      Sparkline
      スピナー
      切り替える
      テーブル
      タブ
      タスクリスト
      テキスト領域
      テキストフィールド
      トースト
      ツールチップ
Stripe のコネクター
パートナー
Partner Ecosystem
パートナー認定
ホーム開発者向けリソースStripe AppsComponents

Stripe Apps の TaskList コンポーネント

TaskList を使用すると、ユーザーは完了する必要があるタスクの一覧で進行状況を把握できます。

警告

このバージョンの SDK はプレリリースであり、不安定な場合があります。導入に必要でない限り、このバージョンは使用しないでください。

TaskList コンポーネントをアプリに追加するには、以下のようにします。

import {TaskList, TaskListItem} from '@stripe/ui-extension-sdk/ui';

TaskList を次に使用します。

  • 大きなタスクまたはプロセスを、ユーザーが完了する複数の連続したステップに分割する
  • 未完了のタスクの進捗状況をユーザーに通知する

タスクリストは、個々のアイテムで構成されます。タスクリストをタスクリストアイテム内にネストして、サブタスクを表すことができます。ユーザーがタスクを完了したら、そのサブタスクの表示を停止します。役に立たなくなった場合は完全に非表示にするか、ユーザーがクリックして表示できるようにすることができます。

次の例は、コネクターラインを使用してタスクリストを表示し、タスクを順番に完了する要件を強調する方法を示しています。

サンプルを読み込み中...
const tasks: TaskListItemProps[] = [ { title: 'Add business info', status: 'complete', }, { title: 'Connect your bank', status: 'complete', }, { title: 'Secure your account', status: 'complete', }, { title: 'Add extras', status: 'in-progress', subTasks: [ { title: 'Tax calculation', status: 'complete', }, { title: 'Fraud protection', status: 'in-progress', }, { title: 'Climate contributions', status: 'not-started', }, ], }, { title: 'Review and finish', status: 'not-started', }, ]; return ( <TaskList> {tasks.map((task, idx) => ( <TaskListItem key={idx} {...task} /> ))} </TaskList> )

TaskList プロパティ

プロパティタイプ

children

必要

React.ReactNode

1 つ以上の TaskListItem コンポーネント。

TaskListItem

TaskList コンポーネントには、ユーザーが実行する必要がある各タスクを定義する 1 つ以上の TaskListItem コンポーネントが含まれます。タスクリスト項目が固有のサブタスクを定義している場合、ユーザーはそれらのサブタスクを完了して親タスクを完了する必要があります。

TaskListItem プロパティ

プロパティタイプ

title

必要

string

タスクの表示タイトル。

onPress

オプション

((event: PressEvent) => void) | undefined

ユーザーがタスク上の任意の場所をクリックしたときのイベントハンドラー。

status

オプション

("not-started" | "in-progress" | "blocked" | "complete") | undefined

タスクの現在のステータス。

subTasks

オプション

Array<SubTasks> | undefined

このタスクに属するサブタスクのリスト。

関連型: SubTasks。

SubTasks

プロパティタイプ

title

必要

string

タスクの表示タイトル。

onPress

オプション

((event: PressEvent) => void) | undefined

ユーザーがタスク上の任意の場所をクリックしたときのイベントハンドラー。

status

オプション

("not-started" | "in-progress" | "blocked" | "complete") | undefined

タスクの現在のステータス。

ステートフル

次の例は、クリックイベントに応答して各タスク項目の状態が更新される、ステートフルタスクリストの表示方法を示しています。

サンプルを読み込み中...
import {useReducer, useCallback} from 'react'; import { Box, Button, TaskList, TaskListItem, TaskListItemProps, } from '@stripe/ui-extension-sdk/ui'; const initialTasks: TaskListItemProps[] = [ { title: 'Add business info', status: 'in-progress', }, { title: 'Connect your bank', status: 'complete', }, { title: 'Secure your account', status: 'complete', }, { title: 'Add extras', status: 'in-progress', subTasks: [ { title: 'Tax calculation', status: 'in-progress', }, { title: 'Fraud protection', status: 'in-progress', }, { title: 'Climate contributions', status: 'not-started', }, ], }, { title: 'Review and finish', status: 'not-started', }, ]; const [tasks, dispatch] = useReducer(taskReducer, initialTasks); const toggleStatus = useCallback((taskIdx: number, subTaskIdx?: number) => { dispatch({type: 'TOGGLE_STATUS', taskIdx, subTaskIdx}); }, []); return ( <Box> <TaskList> {tasks.map((task, taskIdx) => ( <TaskListItem key={`task-${taskIdx}-${task.status}`} {...task} onPress={() => toggleStatus(taskIdx)} subTasks={task.subTasks?.map((subTask, subTaskIdx) => ({ ...subTask, onPress: () => toggleStatus(taskIdx, subTaskIdx), }))} /> ))} </TaskList> </Box> ); function getNextStatus( status: string, ): 'not-started' | 'in-progress' | 'complete' { switch (status) { case 'complete': return 'not-started'; case 'not-started': return 'in-progress'; case 'in-progress': return 'complete'; default: return 'not-started'; } } type TaskAction = { type: 'TOGGLE_STATUS'; taskIdx: number; subTaskIdx?: number; }; // Reducer function to handle state updates function taskReducer( state: TaskListItemProps[], action: TaskAction, ): TaskListItemProps[] { switch (action.type) { case 'TOGGLE_STATUS': // If subTaskId is provided, update the subtask if (action.subTaskIdx !== undefined) { return state.map((task, idx) => { if (idx === action.taskIdx && task.subTasks) { return { ...task, subTasks: task.subTasks.map((subTask, subIdx) => { if (subIdx === action.subTaskIdx) { return { ...subTask, status: getNextStatus(subTask.status as string), }; } return subTask; }), }; } return task; }); } // Otherwise update the main task else { return state.map((task, idx) => { if (idx === action.taskIdx) { return { ...task, status: getNextStatus(task.status as string), }; } return task; }); } default: return state; } }

参照情報

  • 従うべき設計パターン
  • アプリのスタイル設定
  • UI テスト
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc