@@ -2,37 +2,44 @@ import { useState } from 'react';
22import { useDispatch , useSelector } from 'react-redux' ;
33import styles from './Dropdown.module.css' ;
44import WorkflowCreationPopup from '../Popups/WorkflowDefinitionCreation/WorkflowDefinitionCreation.jsx' ;
5- import { api } from '../../api' ;
65import textContent from '../../assets/text.json' ;
6+ import { api } from '../../api' ;
7+ import {
8+ openPopupWindow ,
9+ closePopupWindow ,
10+ openLoadingCircleInPopup ,
11+ closeLoadingCircleInPopup ,
12+ showErrorTextInPopup ,
13+ clearErrorTextInPopup ,
14+ saveCreatedWorkflow ,
15+ clearCreatedWorkflowFromState ,
16+ } from '../../store/actions' ;
717
818const Dropdown = ( { options } ) => {
919 const dispatch = useDispatch ( ) ;
10- const isOpened = useSelector ( state => state . popup . isOpened ) ;
20+ const isPopupOpened = useSelector ( state => state . popup . isOpened ) ;
1121 const [ selectedDocument , setSelectedDocument ] = useState ( options [ 0 ] . value ) ;
1222
13- const togglePopup = ( ) => {
14- dispatch ( { type : isOpened ? 'CLOSE_POPUP' : 'OPEN_POPUP' } ) ;
15- dispatch ( { type : 'CLEAR_ERROR_POPUP' } ) ;
16- dispatch ( { type : 'CLEAR_CREATED_WORKFLOW' } ) ;
23+ const closePopup = ( ) => {
24+ dispatch ( closePopupWindow ( ) ) ;
25+ dispatch ( clearErrorTextInPopup ( ) ) ;
26+ dispatch ( clearCreatedWorkflowFromState ( ) ) ;
1727 } ;
1828
1929 const handleCreateWorkflow = async ( { value, type } ) => {
2030 setSelectedDocument ( value ) ;
21- dispatch ( { type : 'OPEN_POPUP' } ) ;
22- dispatch ( { type : 'LOADING_POPUP' } ) ;
31+ dispatch ( openPopupWindow ( ) ) ;
32+ dispatch ( openLoadingCircleInPopup ( ) ) ;
2333 const { status, data } = await api . workflows . createWorkflowDefinition ( type ) ;
2434
2535 if ( status === 400 ) {
26- dispatch ( {
27- type : 'SET_ERROR_POPUP' ,
28- payload : { errorMessage : data . message , errorHeader : null , templateName : data . templateName } ,
29- } ) ;
30- dispatch ( { type : 'LOADED_POPUP' } ) ;
36+ dispatch ( showErrorTextInPopup ( null , data . message , data . templateName ) ) ;
37+ dispatch ( closeLoadingCircleInPopup ( ) ) ;
3138 return ;
3239 }
3340
34- dispatch ( { type : 'CREATED_WORKFLOW' , payload : { workflowId : data . workflowDefinitionId } } ) ;
35- dispatch ( { type : 'LOADED_POPUP' } ) ;
41+ dispatch ( saveCreatedWorkflow ( data . workflowDefinitionId ) ) ;
42+ dispatch ( closeLoadingCircleInPopup ( ) ) ;
3643 } ;
3744
3845 return (
@@ -59,9 +66,9 @@ const Dropdown = ({ options }) => {
5966 ) ) }
6067 </ div >
6168
62- { isOpened && (
69+ { isPopupOpened && (
6370 < WorkflowCreationPopup
64- togglePopup = { togglePopup }
71+ togglePopup = { closePopup }
6572 message = { options . find ( option => option . value === selectedDocument ) . message }
6673 />
6774 ) }
0 commit comments