%PDF- %PDF-
Direktori : /home/opti/www/stlc/wp-content/plugins/omnisend/src/connection/components/ |
Current File : /home/opti/www/stlc/wp-content/plugins/omnisend/src/connection/components/connection-page-layout.js |
import ConnectionLogos from './connection-logos'; import ConnectionFeatures from './connection-features'; import ConnectionSteps from './connection-steps'; import { Notice, Flex, Spinner } from '@wordpress/components'; import { useState } from '@wordpress/element'; const ConnectionPageLayout = () => { const [ error, setError ] = useState( null ); const [ loading, setLoading ] = useState( null ); const handleSiteConnection = ( apiKey ) => { setLoading( true ); const formData = new FormData(); formData.append( 'api_key', apiKey ); formData.append( 'action_nonce', omnisend_connection.action_nonce ); fetch( omnisend_connection.site_url + '/wp-json/omnisend/v1/connect', { method: 'POST', body: formData, headers: { 'x-wp-nonce': omnisend_connection.nonce, } } ) .then( ( response ) => response.json() ) .then( ( data ) => { if ( data.success ) { location.reload(); } if ( data.error ) { setError( data.error ); setLoading( false ); } } ) .catch( ( e ) => { setError( e.message || e ); setLoading( false ); } ); }; if ( loading ) { return ( <Flex justify="center"> <div className="omnisend-spacing-mt-6"> <Spinner /> </div> </Flex> ); } return ( <> <div className="omnisend-page-layout"> {error && ( <div className="omnisend-spacing-mb-8"> <Notice className='omnisend-notice' status="error">{error}</Notice> </div> )} <ConnectionLogos /> <div className="omnisend-spacing-mv-8"> <div className="omnisend-h1">Connect Omnisend plugin</div> </div> <ConnectionFeatures /> <div className="omnisend-spacing-mv-16"> <hr className="omnisend-divider" /> </div> <div className="omnisend-h1">Steps to connect to Omnisend:</div> <ConnectionSteps onSubmit={handleSiteConnection} /> </div> </> ); }; export default ConnectionPageLayout;