FocusView-Komponente für Stripe-AppsNur Dashboard
Verwenden Sie FocusView, um einen speziellen Bereich zu öffnen, in dem der/die Endnutzer/in eine bestimmte Aufgabe durchführen kann.
Eine FocusView
-Komponente kann von anderen View
-Komponenten aus geöffnet werden und ermöglicht es den Entwicklerinnen/Entwicklern einen speziellen Bereich für die Kundinnen/Kunden zum Ausführen einer bestimmten Aufgabe zu öffnen. Beispiele:
- Details zum Erstellen eines neuen Eintrags in einer Datenbank eingeben
- Bestimmen Sie mithilfe eines Assistenten die nächsten Schritte.
- Bestätigen Sie, ob die Nutzer/innen die von ihnen angegebene Aktion ausführen möchten.

Darstellung von FocusView
FocusView
muss ein untergeordnetes Element von ContextView
sein. Wrappen Sie FocusView
nicht in einer Bedingung. Verwenden Sie stattdessen die Eigenschaft shown
, um den sichtbaren Status zu kontrollieren. Weitere Informationen finden Sie unter ContextView.
So fügen Sie Ihrer App die FocusView
Komponente hinzu:
import {FocusView} from '@stripe/ui-extension-sdk/ui';
FocusView-Eigenschaften
Eigenschaft | Typ |
---|---|
| Pflichtfeld
Der Inhalt der Komponente. |
| Pflichtfeld
Der Titel der |
| Optional
Falls vorhanden, wird confirmCloseMessages angezeigt, wenn Nutzer/innen die Verwandte Typen: ConfirmCloseMessages. |
| Optional
React Node neben allen Aktionen in der Fußzeile. |
| Optional
Eine primäre Aktionsaufruf- |
| Optional
Eine sekundäre Aktionsaufruf- |
| Optional
Ermöglicht es der |
| Optional
Gibt an, ob |
| OptionalVeraltet Verwenden Sie stattdessen
|
ConfirmCloseMessages
Eigenschaft | Typ |
---|---|
| Pflichtfeld
|
| Pflichtfeld
|
| Pflichtfeld
|
| Pflichtfeld
|
Bestätigungsdialogfeld schließen
Wenn Sie confirmCloseMessages
übergeben, übergeben Sie auch die Eigenschaft setShown
, damit FocusView
ihren shown
-Status verwalten kann und der Bestätigungsdialog zum Schließen in jedem Szenario ordnungsgemäß funktioniert. Um zu steuern, wann das Dialogfeld zur Bestätigung des Schließens angezeigt wird, können Sie einen Status verwenden, um confirmCloseMessages
bedingt an FocusView
zu übergeben, wie im folgenden Beispiel:
Beispiel
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> ); };