Composant FocusView pour les applications StripeDashboard uniquement
Utilisez FocusView pour ouvrir un espace dédié permettant à l'utilisateur d'effectuer une tâche spécifique.
Un composant FocusView peut être ouvert à partir d’autres composants View et permet aux développeurs d’ouvrir un espace dédié pour que le client final puisse effectuer une tâche spécifique. En voici quelques exemples :
- Saisir des informations pour créer une nouvelle entrée dans une base de données
- Suivre les indications d’un assistant pour décider des prochaines étapes
- Confirmer que l’utilisateur souhaite effectuer l’action qu’il a indiquée
Apparence de la vue FocusView
FocusView doit être un enfant de ContextView. N’intégrez pas FocusView à une structure conditionnelle. Utilisez plutôt la propriété shown pour contrôler s’il est à l’état visible. Pour en savoir plus, consultez la page ContextView.
Pour ajouter le composant FocusView à votre application :
import {FocusView} from '@stripe/ui-extension-sdk/ui';
Propriétés de FocusView
| Propriété | Type |
|---|---|
| Obligatoire
Contenu du composant. |
| Obligatoire
Le titre de la |
| Facultatif
S’il est fourni, confirmCloseMessages sera affiché lorsque l’utilisateur fermera la Types associés : ConfirmCloseMessages. |
| Facultatif
Node React adjacent à toute action dans le pied de page. |
| Facultatif
Un |
| Facultatif
Un |
| Facultatif
Permet à |
| Facultatif
Indique si la |
| FacultatifObsolète Utilisez plutôt
|
ConfirmCloseMessages
| Propriété | Type |
|---|---|
| Obligatoire
|
| Obligatoire
|
| Obligatoire
|
| Obligatoire
|
Fermer la boîte de dialogue de confirmation
Lors de la transmission de confirmCloseMessages, pour que la boîte de dialogue de confirmation de fermeture fonctionne correctement dans chaque scénario de fermeture, transmettez la propriété setShown afin que FocusView puisse gérer son état shown. Pour contrôler le moment où la boîte de dialogue de confirmation de fermeture s’affiche, vous pouvez utiliser l’état pour conditionner le passage de confirmCloseMessages à FocusView, comme dans l’exemple suivant :
Exemple
import React from 'react'; import { Box, Button, ContextView, FocusView, Select, } from '@stripe/ui-extension-sdk/ui'; type Mood = 'Happy' | 'Sad'; const confirmCloseMessages = { title: 'Your mood will not be saved', description: 'Are you sure you want to exit?', cancelAction: 'Cancel', exitAction: 'Exit', }; const MoodView = () => { const [mood, setMood] = React.useState<Mood>('Happy'); const [shown, setShown] = React.useState<boolean>(false); const [confirmClose, setConfirmClose] = React.useState<boolean>(false); const open = () => { setConfirmClose(true); setShown(true); }; const closeWithoutConfirm = () => { setConfirmClose(false); setShown(false); }; const closeWithConfirm = () => { setShown(false); }; const updateMood = (newMood: Mood) => { setMood(newMood); closeWithoutConfirm(); }; return ( <ContextView title="Mood picker" description="This section communicates my extension's feelings" > <FocusView title="Pick your mood" shown={shown} setShown={setShown} confirmCloseMessages={confirmClose ? confirmCloseMessages : undefined} secondaryAction={<Button onPress={closeWithConfirm}>Cancel</Button>} > <Select onChange={(e) => updateMood(e.target.value as Mood)}> <option label="">Select mood</option> <option label="Happy">Happy</option> <option label="Sad">Sad</option> </Select> </FocusView> <Box css={{stack: 'x', gap: 'medium'}}> <Box css={{ font: 'subheading', color: mood === 'Happy' ? 'success' : 'info', }} > {mood} </Box> <Button onPress={open}>Change mood</Button> </Box> </ContextView> ); };