/** * External dependencies */ import { useDispatch, useSelect } from '@wordpress/data'; import { __, sprintf } from '@wordpress/i18n'; import { Card } from '@wordpress/components'; /** * Internal dependencies */ import { PRESETS_STORE_NAME } from '../data'; import './index.scss'; import PresetsList from './list'; import PresetsListPlaceholder from './list-placeholder'; import ListLoadError from './list-load-error'; import { getWorkflowEditUrl } from '../base/utils'; const PresetsTab = () => { const { presets, getPresetsError, getPresetsIsRequesting, createWorkflowIsRequesting, didCreateWorkflow, } = useSelect( ( select ) => { const presetsSelect = select( PRESETS_STORE_NAME ); return { getPresetsError: presetsSelect.getError( 'getPresets' ), getPresetsIsRequesting: presetsSelect.isRequesting( 'getPresets' ), presets: presetsSelect.getPresets(), createWorkflowIsRequesting: presetsSelect.isRequesting( 'createWorkflow' ), didCreateWorkflow: presetsSelect.didCreateWorkflow(), }; }, [] ); const { createWorkflow: createWorkflowAction } = useDispatch( PRESETS_STORE_NAME ); const { createNotice } = useDispatch( 'core/notices' ); let cardBody; const createWorkflow = async ( presetName ) => { try { const workflowId = await createWorkflowAction( presetName ); // Redirect to workflow edit screen after workflow is created // Append origin parameter too window.location.href = getWorkflowEditUrl( workflowId, 'preset' ); } catch ( error ) { createNotice( 'error', __( "Error: The workflow couldn't be created.", 'automatewoo' ) ); } }; if ( getPresetsError ) { const message = getPresetsError.message ? sprintf( // translators: %s: The error message. __( 'Error: %s', 'automatewoo' ), getPresetsError.message ) : null; cardBody = ; } else if ( getPresetsIsRequesting ) { cardBody = ; } else { cardBody = ( ); } return ( { cardBody } ); }; export default PresetsTab;