Wizard
Verwendung
Weitere Informationen finden Sie unter Spezifikationen zur Verwendung des Assistenten im Muster-Abschnitt.
Code
Importanweisung
import { * } from '@jutro/wizard-next';
Jutro stellt die mit dem Assistenten verbundenen Funktionen über das Paket @jutro/wizard-next bereit. Es enthält die folgenden Komponenten:
WizardWizardPageWizardProgressWizardActionBarWizardPrompt
Der Wizard ist die Hauptkomponente, die alle Teile zusammenfügt – den Fortschrittsbalken, die Schaltflächen und die ihnen zugeordneten Aktionen sowie den Assistenteninhalt auf den Assistentenseiten. Bei Verwendung von WizardProgress und WizardActionBar können Sie ihr Erscheinungsbild anpassen, eigene Komponenten darin verwenden oder sie vollständig entfernen.
Funktionen des Assistenten
Die Hauptfunktionen des Assistenten sind:
Fortschrittsanzeige
Neben der bereitgestellten standardmäßigen Fortschrittsanzeige kann auch eine benutzerdefinierte Anzeige verwendet werden. Auf diese Weise können Sie Ihre eigene Fortschrittsanzeige erstellen, um Ihren Projektanforderungen gerecht zu werden, während Sie die anderen Funktionen des Jutro-Assistenten in vollem Umfang nutzen.
Aktionsleiste
Die Aktionsleiste steuert die Aktionen des Assistenten. Sie unterstützt die Ereignisse onCancel, onFinish, onNext und onPrevious, und die zugehörigen Callbacks können mit JSX angepasst werden. Zusätzlich können Sie für jede Aktion eine Knockout-Seite anpassen. Innerhalb jeder Aktion können Sie je nach Reaktion eine andere Knockout-Seite anpassen.
Seitenübergänge
Verwaltet die Seitenübergänge, die normalerweise vom Benutzer über die Interaktion mit den Aktionsleistenschaltflächen ausgelöst werden. Unterstützt next, previous und jump (z. B. wenn sich ein Benutzer in Schritt 5 befindet und durch die Sprungaktion zu Schritt 3 weitergeleitet wird).
Assistentenkomponente
Verwenden Sie diese Komponente, um einen Assistenten zu rendern. Diese Komponente ist der Hauptcontainer des Assistenten. Sie rendert Routen für die angegebenen Schritte. Jeder Schritt muss auf eine Komponente verweisen, die <WizardPage entweder umschließt oder erweitert. Jede Schrittkomponente empfängt Informationen vom Assistenten und von Navigationspfaden, die beim Rendern der Seite verwendet werden.
import { Wizard } from '@jutro/wizard-next';
const steps = [
{
key: 'one',
route: 'step1',
component: PageOne,
},
{
key: 'two',
route: 'step2',
component: PageTwo,
},
{
key: 'three',
route: 'step3',
component: PageThree,
},
];
<Wizard
baseRoute="/wizard/:zipCode"
basePath="/wizard/90210"
steps={steps}
cancelPath="/home"
finishPath="/home"
/>;
Assistenteneigenschaften
Dies ist die Liste der Eigenschaften der Wizard-Komponente. In den nächsten Unterabschnitten finden Sie zusätzliche Informationen zu den Eigenschaften layout und buttonProps und deren erwarteten Typen.
basePatherforderlich- Typ
stringBeschreibungBase path for the wizard; used when building step links.
baseRouteerforderlich- Typ
stringBeschreibungBase route for the wizard; used when building step routes.
locationerforderlich- Typ
{}BeschreibungCurrent path location, provided by react-router. See react-router props.
className- Typ
stringBeschreibungCSS class name for this component.
actionBarLayout- Typ
'default' | 'spaceEvenly'BeschreibungThe type of layout applied to action bar items:
default- keeps items with visual separation,spaceEvenly- distributes items evenly in available grid space. bodyClassName- Typ
stringBeschreibungCSS class name for the body of this component.
buttonProps- Typ
{ cancel:{}, previous: {}, next: {}, finish: {} }BeschreibungOverrides for action buttons.
callbackMap- Typ
{onStartWizard: func, onFinishWizard: func, onCancelWizard: func,}BeschreibungCallback map for the resolver.
cancelPath- Typ
stringBeschreibungPath to navigate on 'cancel'; if none provided, the 'cancel' button will not be displayed.
componentMap- Typ
{}BeschreibungComponent map for page component resolver.
finishPath- Typ
stringBeschreibungPath to navigate on 'finish'; if none provided, the 'finish' button will not be displayed.
history- Typ
{}BeschreibungReact-Router history object. See react-router props.
initialStepPath- Typ
stringBeschreibungPath to the initial step (will be appended to 'basePath'); if not provided, the first step will be displayed.
knockoutPath- Typ
stringBeschreibungPath to navigate on fail of 'next'; if none provided, no default failTo will be added to the 'next' button.
layout- Typ
{desktop: layoutShape, tablet: layoutShape, phoneWide: layoutShape, phone: layoutShape}BeschreibungObject to override page layout.
match- Typ
{}BeschreibungReact-Router match object. See react-router props.
onCancel- Typ
string | funcBeschreibungCallback to invoke when the 'cancel' button is clicked; returns true, false or a promise.
onFinish- Typ
string | funcBeschreibungCallback to invoke when the 'finish' button is clicked; returns true, false or a promise.
onStart- Typ
string | funcBeschreibungCallback to trigger when the Wizard mounts.
onWizardEvent- Typ
func(info, eventName)BeschreibungThe function(info, eventName) called when a page loads (invoked by WizardPage).
renderActionBar- Typ
func | booleanBeschreibungCallback to render the action bar, or hide/show it.
renderNotFound- Typ
funcBeschreibungCallback to render 'not found' content; if not provided, nothing will be rendered if a path is not found.
renderProgressBar- Typ
funcBeschreibungCallback to render a progress bar, or hide/show it.
staticContext- Typ
{}BeschreibungReact-Router static context.
steps- Typ
{ id: string, route: string, title: string, , component: React.Node }[]BeschreibungArray of steps of the wizard.
subRoutes- Typ
{ id: string, route: string, title: string, , component: React.Node }[]BeschreibungArray of routes for subwizards. If a subroute matches the current location a subwizard is active otherwise the outer wizard is active.
Assistentenlayouts
Der Assistent verwendet eine von der Layout-Komponente abgeleitete Rasterstruktur. Sie können auch benutzerdefinierte Layoutobjekte für Desktops, Tablets und Smartphones übergeben, um das Layout des Assistenten anzupassen.
return (
<WizardExampleContext.Provider value={exampleContext}>
<Wizard
baseRoute={route}
layout={{
desktop: {
columns: ['1fr'],
repeat: '4',
gap: 'large',
colStart: '2',
colSpan: '1',
},
tablet: {
repeat: '4',
...
},
phone: {
repeat: '4',
...
},
}}
basePath={path}
steps={steps}
.......
/>
</WizardExampleContext.Provider>
);
Layouteigenschaft
className- Typ
stringBeschreibungCSS class name for this component.
children- Typ
ReactNode (preferably `GridItem`)BeschreibungThe content to be displayed in the page.
id- Typ
stringBeschreibungUnique identifier for the component.
layout- Typ
{desktop?: LayoutShape, tablet?: LayoutShape, phoneWide?: LayoutShape, phone?: LayoutShape,}colSpan- Typ
number | stringBeschreibungSpecifies how many columns an element will span across.
colStart- Typ
number | stringBeschreibungDefine column to start.
columns- Typ
any[]BeschreibungDefine explicit columns.
gap- Typ
'auto-none' | 'small' | 'medium' | 'large'BeschreibungThe gap size between rows and columns.
repeat- Typ
'auto-fit' | 'auto-fill' | numberBeschreibungAmount of columns to repeat.
BeschreibungOverride the default device layout:
desktop,tablet,phoneWideandphone, all of typeLayoutShape.
LayoutShape-Eigenschaften
Das LayoutShape-Objekt wird in der layout-Eigenschaft verwendet, um das Layout des Assistenten für jeden der möglichen Breakpoints zu definieren.
colSpan- Typ
string | numberBeschreibungspecifies how many columns an element will span across.
colStart- Typ
string | numberBeschreibungdefine column to start from.
columns- Typ
string[] | number[]Beschreibungdefine explicit columns.
gap- Typ
'none', 'small', 'medium', 'large'BeschreibungGap between rows and columns.
repeat- Typ
'auto-fit' | 'auto-fill' | number | stringBeschreibungRepeat columns patterns.
buttonProps-Eigenschaft
buttonProps werden an die Schaltflächen der Aktionsleiste übergeben. Dazu gehören cancel, previous, next und finish. Sie können verwendet werden, um das Erscheinungsbild oder das Verhalten der Standardschaltflächen Wizard (oder WizardPage) anzupassen.
Sie können Eigenschaften von Schaltflächen sowohl an den Wizard als auch an WizardPage übergeben.
Wenn Sie buttonProps in der Assistentenkomponente festlegen, überschreiben Sie die Standardwerte der Aktionsleistenschaltflächen für den gesamten Assistentenablauf.
Im Assistenten wird beispielsweise eine next-Schaltfläche mit fullWidth auf true gesetzt:
<Wizard
buttonProps={{
next: {
fullWidth: true,
},
}}
/>
Wenn Sie buttonProps in einem Assistentenschritt festlegen, überschreiben Sie die Werte der Aktionsleistenschaltflächen für diesen Schritt.
Um das vorige Beispiel fortzuführen, würde dieser Schritt des Assistentenablaufs dann eine next-Schaltfläche mit fullWidth auf false festlegen und den Wert überschreiben, der auf Assistentenebene für diesen Schritt festgelegt wurde.
<WizardPage
buttonProps={{
// overrides of default button props, these props will have priority over the buttonProps override from the wizard.
next: {
fullWidth: false,
},
}}
/>
buttonProps-Eigenschaften
className- Typ
stringBeschreibungCSS class name for this component.
children- Typ
React.Node | IntlMessageShape | { pathname?: IntlMessageShape; hash?: IntlMessageShape }BeschreibungThe children elements to render inside of the Button.
disabled- Typ
booleanBeschreibungIf
truethis button is disabled. failToMessage- Typ
stringBeschreibungThe message shown when the promise is rejected; shown if 'failTo' is not provided.
fullWidth- Typ
booleanBeschreibungIf
true, the button expands to the available width. icon- Typ
string | IconBeschreibungAn Icon component to render on the component. The value must be an
Iconcomponent or the icon's name. For example,CheckIconor'gw-check'. iconClassName- Typ
stringBeschreibungCSS class name for the icon.
iconPosition- Typ
left | rightBeschreibungWhere the icon is placed relative to the text.
id- Typ
stringBeschreibungUnique identifier for the component.
message- Beschreibung
The message shown when executing the trigger/promise.
size- Typ
small | mediumBeschreibungAllows you to select the smaller or larger variant.
to- Typ
IntlMessageShape | IntlRouterLocationBeschreibungThe destination path when the promise is resolved; can be an object like
<Link to>. toMessage- Typ
stringBeschreibungThe message shown when the promise is resolved; shown if 'to' is not provided.
Assistentenseitenkomponente
Die WizardPage-Komponente definiert den Inhalt und die Ereignisse für einen bestimmten Assistentenschritt.
import { WizardPage } from '@jutro/wizard-next';
import { useLocation } from 'react-router-dom';
const myWizardPage = () => {
const location = useLocation();
return (
<WizardPage
{
cancelPath="/"
finishPath="/offer"
knockoutPath="/knockoutPage"
} location={location}>
<span>Account wizard page</span>
</WizardPage>
);
};
WizardPage-Eigenschaften
childrenerforderlich- Typ
nodeBeschreibungThe content to be displayed in the page.
iderforderlich- Typ
stringBeschreibungUnique identifier for the component.
locationerforderlich- Typ
objectBeschreibungThe location object with pathname of current URL. Usually provided from the location.pathname prop passed from the router.
className- Typ
stringBeschreibungCSS class name for this component.
buttonProps- Typ
objectBeschreibungOverrides for action buttons.
headerClass- Typ
stringBeschreibungCSS class passed to wizard page header.
knockoutPath- Typ
stringBeschreibungPath to navigate on fail of 'next'; if none is provided, no default
failTowill be added to the 'next' button'. onLoad- Typ
functionBeschreibungThe callback to invoke when page is loaded; returns true, false or a promise.
onNext- Typ
functionBeschreibungThe callback to invoke when the 'next' button is clicked; returns true, false or a promise.
onPageEventInfo- Typ
functionBeschreibungThe callback to get page event info to send with a wizard event.
onPrevious- Typ
functionBeschreibungCallback to invoke when the 'back' button is clicked; returns true, false or a promise.
pageEventInfo- Typ
function | objectBeschreibungObject or callback to get page event info to send with a wizard event.
panelClassName- Typ
stringBeschreibungAdditional class name for the panel.
renderHeader- Typ
functionBeschreibungFunction which renders a custom panel header element.
renderPanel- Typ
functionBeschreibungThe callback to the render panel method; if null then renders without a panel.
renderSubTitle- Typ
functionBeschreibungFunction to render a custom subTitle.
renderTitle- Typ
functionBeschreibungFunction to render a custom title.
resolveCallbackMap- Typ
objectBeschreibungCallback map for the resolver.
subTitle- Beschreibung
Default panel subtitle expression.
title- Beschreibung
Default panel title expression.
Überlegungen und Referenzen zu WizardPage
-
Assistentenseiten-Callbacks:
onNext,onLoadundonPrevious. Sie können auch Abfragen einblenden, wenn der Benutzer versucht, zu einer vorherigen Seite zurückzukehren oder den Assistenten abbrechen möchte. -
Im Abschnitt Schaltflächeneigenschaften finden Sie Details zu den
buttonProps-Platzierungsoptionen. -
Weitere Informationen zu render-Eigenschaften finden Sie in den Abschnitten Anpassung der Aktionsleiste und Anpassung des Fortschrittsbalkens.
Komponente für Fortschrittsbalken des Assistenten
Es gibt eine Standardfortschrittsanzeige, die Sie anpassen können, oder Sie können eine benutzerdefinierte Komponente über die Eigenschaft der render-Funktion bereitstellen.
Die Standardfortschrittsanzeige wird über die WizardProgress-Komponente verwaltet. Sie basiert auf der SimpleProgressBar-Komponente.
Die gesamte Logik der WizardProgress-Komponente basiert auf den Informationen, die vom Wizard bereitgestellt werden, in den sie eingebettet ist. Die Liste der Schritte wird beispielsweise aus dem Assistentenkontext extrahiert.
Weitere Informationen finden Sie im Abschnitt Anpassen des Fortschrittsbalkens.
WizardProgress-Eigenschaften
basePath- Typ
stringBeschreibungPath to be used when composing the steps URLs.
location- Typ
'none' | 'small' | 'medium' | 'large'BeschreibungTo look for matching subroutes.
progressBarClassNameVerworfen- Typ
stringBeschreibungClass to override progress bar step styles.
Aktionsleiste des Assistenten
Die WizardActionBar-Komponente bietet die Standardfunktionen zum Anzeigen und Verwalten der verschiedenen im Assistenten verfügbaren Optionen. Sie generiert und rendert den WizardButton aus mit Eigenschaften übergebenen Aktionen. Sie kombiniert die Aktion mit Standardeigenschaften für jede Schaltfläche. Die Standardeigenschaften werden überschrieben, wenn sie in Aktionen angegeben werden.
Im Folgenden finden Sie ein Beispiel zur Definition dessen, was passiert, wenn der Benutzer auf die Schaltfläche „Abbrechen“ oder „Weiter“ klickt:
import { WizardActionBar } from '@jutro/wizard-next';
const actions = [
{name: 'cancel', to: '/'},
{name: 'next', to: '/wizard/test/step2'}
]
<WizardActionBar actions={actions}/>
WizardActionBar-Eigenschaften
actionserforderlich- Typ
[]BeschreibungThe list of actions to be rendered in the <WizardActionBar>.
className- Typ
stringBeschreibungCSS class name for this component.
layout- Typ
'default' | 'spaceEvenly' | 'center'BeschreibungType of layout applied to action bar items:
default- keeps items with visual separation,spaceEvenly- distributes items evenly in available grid space,center- center button horizontally, will vertically stack multiple buttons.
Eingabeaufforderung des Assistenten
Bietet einen praktischen Mechanismus für Eingabeaufforderungen im Kontext eines Assistenten. Sie ermöglicht separate Bedingungen und Eingabeaufforderungen für die Fenster „Zurück“ und „Abbrechen“.
import { <WizardPrompt } from '@jutro/wizard-next';
<WizardPrompt
cancelPrompt={{when: wizardChanged, message: 'Want to cancel?'}}
previousPrompt={{when: dataChanged, message: 'Want to go back?'}}
/>
WizardPrompt-Eigenschaften
basePath- Typ
stringBeschreibungPath to be used when composing the steps URLs.
previousPrompt- Typ
{when: boolean, title: string, message: string }BeschreibungProperties for the 'previous' prompt; contains 'when', 'title' and 'message'.
cancelPromptVerworfen- Typ
{when: boolean, title: string, message: string }BeschreibungProperties for the 'cancel' prompt; contains 'when', 'title' and 'message'.
Benutzerdefinierte Verhaltensweisen des Assistenten
Navigation verhindern
Wenn die an die Eigenschaft onCancel, onNext oder onPrevious übergebene Funktion false zurückgibt, wird die Aktion gestoppt und der Benutzer wird nicht zum entsprechenden Pfad umgeleitet, sondern bleibt beim aktuellen Schritt.
Beispiele
Beispiel eines Assistenten
Dieses Beispiel zeigt eine einfache Assistentenkomponente mit den folgenden Funktionen:
- Drei verschiedene Registerkarten
- Navigation mit den Schaltflächen Weiter und Zurück
- Validierung der Daten vor dem Verlassen der ersten Seite
- Eine Abbruchoption, die den Benutzer zur zweiten Seite weiterleitet
- Ein einfacher Fortschrittsbalken
In den folgenden Abschnitten werden die verschiedenen Schritte zum Definieren eines einfachen Assistenten mit den Komponenten aus dem Paket @jutro/wizard-next erläutert.
Für die Implementierung des Assistenten sind erforderlich:
- Definition der verschiedenen Assistentenseiten, die angezeigt werden können
- Definition des Assistentenlayouts: wie der Assistent angezeigt wird, einschließlich Breakpoint-Alternativen
- Definition der benutzerdefinierten Elemente wie Aktionsleiste und Fortschrittsanzeige
- Definition der Assistentenschritte: Routen und Alternativen, z. B. wohin der Benutzer nach Abschluss eines Schrittes geleitet wird
- Die Zusammensetzung des Assistenten unter Verwendung aller zuvor definierten Elemente
1. Definieren der Assistentenseiten
Das Definieren einer Wrapper-Komponente ist der empfohlene Ansatz für die Definition der Assistentenseiten. Jeder Assistentenschritt muss auf eine Komponente verweisen, die WizardPage entweder umschließt oder erweitert.
Das folgende Beispiel zeigt, wie die Seitenkomponenten für den vorherigen Assistenten erstellt werden.
import { useState } from 'react';
import { WizardPage } from '@jutro/wizard-next';
import { Checkbox } from '@jutro/components';
import { useLocation } from 'react-router-dom';
const TheFirstPage = ({ id, wizardPageProps }) => {
const location = useLocation();
const [valid, setValid] = useState(false);
const [stateMessages, setStateMessages] = useState(null);
const firstStepCheckboxChanged = (e, value) => {
setValid(value);
};
const wizardPageOnNext = () => {
if (!valid) {
setStateMessages({
error: ['Select this checkbox to go to the next page'],
});
}
// if false is returned, the default next event does not continue
return valid;
};
return (
<WizardPage
id={id}
{...wizardPageProps}
onNext={wizardPageOnNext}
location={location}
title="First page">
<span>Here you can add your content</span>
<Checkbox
label="This is mandatory to continue"
required={true}
stateMessages={stateMessages}
onChange={firstStepCheckboxChanged}
/>
</WizardPage>
);
};
const AnotherWizardPage = ({ id, wizardPageProps }) => {
const location = useLocation();
return (
<WizardPage
id={id}
{...wizardPageProps}
location={location}
title="Second page">
<span>Another wizard page</span>
</WizardPage>
);
};
const LastWizardPage = ({ id, wizardPageProps }) => {
const location = useLocation();
return (
<WizardPage
id={id}
{...wizardPageProps}
location={location}
title="The last page">
<span>The last wizard page</span>
</WizardPage>
);
};
Neben der Seitendefinition enthält das Beispiel einen Validierungsmechanismus für die erste Seite, der im Falle ungültiger Daten die Weiterleitung zur nächsten Seite verhindert.
2. Definieren des Layouts
Definieren Sie die Seitenstruktur des Assistenten für die verschiedenen Breakpoints.
const layout = {
desktop: { colStart: 1, colSpan: 12 },
tablet: { colStart: 1, colSpan: 10 },
phone: { colStart: 1, colSpan: 6 },
};
3. Definieren benutzerdefinierter Elemente
In diesem Beispiel werden Komponenten aus der Basiskonfiguration verwendet. Weitere Informationen zu benutzerdefinierten Implementierungsreferenzen finden Sie in den Abschnitten Anpassung des Fortschrittsbalkens und Anpassung der Aktionsleiste.
4. Definieren der Schritte des Assistenten
Sie müssen für jeden Schritt die entsprechende Route und die zugewiesene WizardPage-Komponente angeben.
const steps = [
{
id: 'wizard.firstpage',
route: 'firstpage',
title: 'First page',
component: TheFirstPage,
},
{
id: 'wizard.secondpage',
route: 'secondpage',
title: 'Second page',
component: AnotherWizardPage,
},
{
id: 'wizard.lastpage',
route: 'lastpage',
title: 'Last page',
component: LastWizardPage,
},
];
5. Erstellen des Assistenten
Führen Sie alle bisher definierten Elemente zusammen, um den Assistenten zu erstellen.
Die Option Abbrechen wird durch Definieren einer cancelPath-Eigenschaft hinzugefügt, während die Schaltflächen Weiter und Zurück standardmäßig die Definitionsreihenfolge der Schritte verwenden.
import { Wizard } from '@jutro/wizard-next';
import { useLocation } from 'react-router-dom';
<Wizard
layout={layout}
baseRoute={'/'}
basePath={'/'}
location={useLocation}
cancelPath="secondpage"
steps={steps}
/>;
Anpassung des Fortschrittsbalkens
Verwenden Sie renderProgressBar, um den Fortschrittsbalken zu deaktivieren oder einen eigenen Fortschrittsbalken zu erstellen.
- Um den Fortschrittsbalken zu deaktivieren, setzen Sie
renderProgressBaraufnulloderfalse. - Um den Fortschrittsbalken anzupassen, setzen Sie
renderProgressBarauf eine render-Eigenschaft.
Diese render-Eigenschaft erwartet eine Funktion, die einen Parameter, ein Objekt mit der basePath-Eigenschaft und ein Array der steps empfängt, die beide an den Assistenten übergeben werden.
Es folgt ein Beispiel für einen benutzerdefinierten Fortschrittsbalken, der mit dem Layout und den in den vorherigen Beispielen definierten Schritten erstellt wurde:
import { useLocation } from 'react-router-dom';
import { Wizard } from '@jutro/wizard-next';
import { StepProgressBar } from '@jutro/components';
const customProgressBar = ({ basePath, steps }) => {
const { pathname } = useLocation(); // calc if the subroute a match
const stepRoutes = steps.map((step) => step?.route);
const currentStep = stepRoutes.indexOf(pathname.replace(`${basePath}/`, ''));
const barSteps = steps.map((step) => {
step.active = false;
return step;
});
if (currentStep >= 0) barSteps[currentStep].active = true;
return <StepProgressBar steps={barSteps} />;
};
<Wizard
layout={layout}
baseRoute={'/'}
basePath={'/'}
location={useLocation}
cancelPath="firstpage"
steps={steps}
renderProgressBar={customProgressBar}
/>;
Weitere Informationen zu render-Eigenschaften finden Sie in der React-Dokumentation.
Anpassung der Aktionsleiste
Verwenden Sie renderActionBar, um die Aktionsleiste zu deaktivieren oder eine eigene Aktionsleiste zu erstellen.
- Um die Aktionsleiste zu deaktivieren, setzen Sie
renderActionBaraufnulloderfalse. - Um die Aktionsleiste anzupassen, setzen Sie
renderActionBarauf eine render-Eigenschaft.
Die render-Eigenschaft ist eine Funktion, die zwei Parameter empfängt:
resolvedPropsForButtons– Dazu gehören auch Routenpfade, die vom Assistenten auf der Grundlage des Ablaufs und des aktuellen Schritts berechnet werden.actionBarLayout– Die gleiche Eigenschaft wurde an den Assistenten übergeben, um das Layout der Aktionsleiste festzulegen. Wenn Sie eine benutzerdefinierte Aktionsleiste verwenden, können Sie diese Eigenschaft auf beliebige Weise verwenden, da sie direkt über den Assistenten an die Funktion der render-Eigenschaft übergeben wird.
Ein Beispiel für eine benutzerdefinierte Aktionsleiste unter Verwendung der Schritte und des Layouts aus den vorherigen Beispielen wäre:
export const WizardWithCustomActionBar = () => {
const location = useLocation();
const history = useHistory();
const customActionBar = (resolvedPropsForButtons, actionBarLayout) => {
const selectedFlexDirection =
actionBarLayout === 'column' ? 'column' : 'row';
return (
<div
style={{
border: 'solid 1px yellow',
display: 'flex',
flexDirection: selectedFlexDirection,
}}>
{resolvedPropsForButtons.map((propForButton) =>
('next' == propForButton.name || 'previous' == propForButton.name) &&
propForButton.to != undefined ? (
<Button
label={propForButton.name}
fullWidth={true}
onClick={(e, to: propForButton.to) => handleNavigation(e, to)}
/>
) : (
''
)
)}
</div>
);
};
const handleNavigation = (event, to) => {
history.replace(`//${to}`);
};
return (
<Wizard
layout={layout}
baseRoute={'/'}
basePath={'/'}
location={location}
steps={steps}
renderActionBar={customActionBar}
/>
);
};
Wir haben die Validierung aus diesem Beispiel entfernt, aber Sie können sie in der handleNavigation-Funktion hinzufügen.
Änderungsprotokoll
10.9.0
-
Es wurde eine neue Opt-in-Funktion eingeführt, die die automatische Ereignisveröffentlichung für die Komponente Wizard deaktiviert. Sie können diese Funktion aktivieren, indem Sie der
.env-Datei im Stammverzeichnis Ihrer Jutro-AnwendungJUTRO_DISABLE_AUTO_EVENTS_PUBLISHING=truehinzufügen. Wenn diese Option aktiviert ist, veröffentlichen ältere Komponenten standardmäßig keine Ereignisse mehr. Weitere Informationen zu Ereignissen und zum Einrichten neuer Ereignisse finden Sie in der Dokumentation zu Ereignissen.
10.2.0
- Die Eigenschaft
progressBarClassNameaus derWizardProgress-Komponente wurde abgekündigt.
10.0.0
ScrollToError-Komponente außer Betrieb gesetzt, die über das Paket@jutro/wizard-nextverfügbar gemacht wurde.- Die Verwendung von Metadaten zum Definieren der Erstellung und Einrichtung des
Wizardwurde abgekündigt.