Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
Aperçu
Gestion des versions
Journal des modifications
Mettre à niveau votre version de l'API
Actualiser votre version du SDK
Essentials
SDK
API
Tests
CLI Stripe
Outils
Workbench
Dashboard des développeurs
Shell Stripe
Stripe pour Visual Studio Code
Fonctionnalités
Workflows
Destinations d'événements
Alertes d'intégrité de StripeChargements de fichiers
AI solutions
Boîte à outils des agents
Build with an LLM
Sécurité et confidentialité
Sécurité
Confidentialité
Extensions Stripe
Stripe Apps
    Présentation
    Démarrer
    Créer une application
    Fonctionnement de Stripe Apps
    Exemples d'application
    Créer une application
    Enregistrer des clés secrètes
    Méthodes d'authentification de l'API
    Flux d'autorisation
    Logique côté serveur
    Écouter les événements
    Gérer différents modes
    Activer la prise en charge de l'environnement de test
    Page des paramètres d'application
    Concevoir une interface utilisateur
    Inscription des utilisateurs
    Distribuer votre application
    Options de distribution
    Charger votre application
    Versions
    Tester votre application
    Publier votre application
    Faire la promotion de votre application
    Ajouter des liens profonds
    Créer des liens d'installation
    Assigner des rôles dans les extensions d'interface utilisateur
    Actions post-installation
    Analyses de l'application
    Embedded components
    Intégrer des applications tierces conçues pour Stripe
    Migrer vers Stripe Apps
    Migrer ou développer une extension
    Migrer un plugin vers Stripe Apps ou Stripe Connect
    Référence
    Manifeste de l'application
    Interface de ligne de commande
    SDK d'extension
    Autorisations
    Fenêtres d'affichage
    Modèles de conception
    Composants
      Accordéon
      Badge
      Bannière
      BarChart
      Composant box
      Bouton
      ButtonGroup
      Case à cocher
      Puce
      ContextView
      DateField
      Séparateur
      FocusView
      FormFieldGroup
      Icône
      Img
      Inline
      LineChart
      Link
      Liste
      Menu
      PropertyList
      Radio
      Sélectionner
      SettingsView
      SignInView
      Sparkline
      Indicateur de chargement
      Changer
      Table
      Onglets
      Liste des tâches
      TextArea
      TextField
      Message transitoire
      Infobulle
Connecteurs Stripe
Partenaires
Partner ecosystem
Certification des partenaires
AccueilRessources pour les développeursStripe AppsComponents

Composant TaskList pour Stripe Apps

Utilisez TaskList pour aider les utilisateurs à suivre leur progression dans la liste de tâches qu’ils doivent accomplir.

Avertissement

Cette version du SDK est une préversion et peut être instable. Évitez d'utiliser cette version à moins qu'elle ne soit nécessaire à votre intégration.

Pour ajouter le composant TaskList à votre application :

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

Utilisez TaskList :

  • Pour diviser des tâches ou des processus plus importants en plusieurs étapes séquentielles qu’un utilisateur doit effectuer
  • Pour rappeler aux utilisateurs l’avancement des tâches non achevées

Les listes de tâches sont constituées d’éléments individuels. Vous pouvez imbriquer des listes de tâches dans des éléments de liste de tâches pour représenter des sous-tâches. Lorsqu’un utilisateur termine une tâche, arrêtez d’afficher ses sous-tâches. Vous pouvez soit les masquer complètement si elles ne sont plus utiles, soit permettre à l’utilisateur de cliquer pour les afficher.

L’exemple suivant montre comment afficher une liste de tâches avec une ligne de connecteur pour renforcer l’exigence consistant à effectuer les tâches de manière séquentielle.

Chargement de l'exemple...
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> )

Propriétés TaskList

PropriétéType

children

Obligatoire

React.ReactNode

Un ou plusieurs composants TaskListItem.

TaskListItem

Les composants TaskList contiennent un ou plusieurs composants TaskListItem qui définissent chaque tâche que l’utilisateur doit effectuer. Si un élément de la liste des tâches définit ses propres sous-tâches, un utilisateur doit effectuer ces sous-tâches pour terminer la tâche parente.

Propriétés TaskListItem

PropriétéType

title

Obligatoire

string

Le titre affiché de la tâche.

onPress

Facultatif

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

Un gestionnaire d’événements pour quand l’utilisateur clique n’importe où dans la tâche.

status

Facultatif

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

L’état actuel de la tâche.

subTasks

Facultatif

Array<SubTasks> | undefined

Une liste des sous-tâches qui appartiennent à cette tâche.

Types associés : SubTasks.

SubTasks

PropriétéType

title

Obligatoire

string

Le titre affiché de la tâche.

onPress

Facultatif

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

Un gestionnaire d’événements pour quand l’utilisateur clique n’importe où dans la tâche.

status

Facultatif

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

L’état actuel de la tâche.

Avec état

L’exemple suivant montre comment afficher une liste de tâches avec état, où l’état de chaque élément de tâche est mis à jour en réponse à un événement de clic.

Chargement de l'exemple...
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; } }

Voir aussi

  • Modèles de conception
  • Styliser votre application
  • Tests d’interface utilisateur
Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc