1- import { useEffect , useState } from 'react' ;
1+ import { useEffect , useMemo , useState } from 'react' ;
22import { ObjectCloner , Step , StepsConfiguration , ToolboxConfiguration , ValidatorConfiguration } from 'sequential-workflow-designer' ;
33import { SequentialWorkflowDesigner , wrapDefinition } from 'sequential-workflow-designer-react' ;
44import { RootEditor } from './RootEditor' ;
@@ -14,21 +14,28 @@ const startDefinition: WorkflowDefinition = {
1414 sequence : [ createTaskStep ( ) , createSwitchStep ( ) ]
1515} ;
1616
17- const toolboxConfiguration : ToolboxConfiguration = {
18- groups : [ { name : 'Steps' , steps : [ createTaskStep ( ) , createSwitchStep ( ) ] } ]
19- } ;
20-
21- const stepsConfiguration : StepsConfiguration = {
22- iconUrlProvider : ( ) => null
23- } ;
24-
25- const validatorConfiguration : ValidatorConfiguration = {
26- step : ( step : Step ) => Boolean ( step . name ) ,
27- root : ( definition : WorkflowDefinition ) => Boolean ( definition . properties . alfa )
28- } ;
29-
3017export function Playground ( ) {
3118 const controller = useSequentialWorkflowDesignerController ( ) ;
19+ const toolboxConfiguration : ToolboxConfiguration = useMemo (
20+ ( ) => ( {
21+ groups : [ { name : 'Steps' , steps : [ createTaskStep ( ) , createSwitchStep ( ) ] } ]
22+ } ) ,
23+ [ ]
24+ ) ;
25+ const stepsConfiguration : StepsConfiguration = useMemo (
26+ ( ) => ( {
27+ iconUrlProvider : ( ) => null
28+ } ) ,
29+ [ ]
30+ ) ;
31+ const validatorConfiguration : ValidatorConfiguration = useMemo (
32+ ( ) => ( {
33+ step : ( step : Step ) => Boolean ( step . name ) ,
34+ root : ( definition : WorkflowDefinition ) => Boolean ( definition . properties . alfa )
35+ } ) ,
36+ [ ]
37+ ) ;
38+
3239 const [ isVisible , setIsVisible ] = useState ( true ) ;
3340 const [ isToolboxCollapsed , setIsToolboxCollapsed ] = useState ( false ) ;
3441 const [ isEditorCollapsed , setIsEditorCollapsed ] = useState ( false ) ;
0 commit comments