import { useState, useEffect, useContext } from 'react';
import { useNavigate } from '@reach/router';
import { SharedContext } from '../../../context/shared-context/shared-context-provider';
import { ImportContext } from '../../../context/import-context/import-context-provider';
import Layout from '../../../templates/layout';
import PageHeader from '../../../ui/page-header/page-header';
import ProcessFailedDialog from '../../../shared/process-failed-dialog/process-failed-dialog';
import InlineLink from 'elementor-app/ui/molecules/inline-link';
import Notice from 'elementor-app/ui/molecules/notice';
import DropZone from 'elementor-app/organisms/drop-zone';
import Button from 'elementor-app/ui/molecules/button';
import { appsEventTrackingDispatch } from 'elementor-app/event-track/apps-event-tracking';
import useKit from '../../../hooks/use-kit';
import './import-kit.scss';
export default function ImportKit() {
const sharedContext = useContext( SharedContext ),
importContext = useContext( ImportContext ),
navigate = useNavigate(),
{ kitState, kitActions, KIT_STATUS_MAP } = useKit(),
[ errorType, setErrorType ] = useState( '' ),
[ isLoading, setIsLoading ] = useState( false ),
{ referrer, currentPage } = sharedContext.data,
resetImportProcess = () => {
importContext.dispatch( { type: 'SET_FILE', payload: null } );
setErrorType( null );
setIsLoading( false );
kitActions.reset();
},
eventTracking = ( command, event = null, eventType = 'click', error = null, modalType = null, uploadMethod ) => {
if ( 'kit-library' === referrer ) {
let uploadMethodName = null;
if ( uploadMethod ) {
uploadMethodName = 'drop' === uploadMethod ? 'drag-drop' : 'browse';
}
let element = null;
if ( event && 'eps-button eps-dialog__button' === event.currentTarget.className.trim() ) {
element = 'close button';
} else if ( event && 'eps-button eps-dialog__close-button' === event.currentTarget.className.trim() ) {
element = 'x';
}
appsEventTrackingDispatch(
command,
{
element,
page_source: 'import',
event_type: eventType,
step: currentPage,
error: 'general' === error ? 'unknown' : error,
modal_type: modalType,
method: uploadMethodName,
},
);
}
},
getLearnMoreLink = () => (
eventTracking( 'kit-library/seek-more-info', null, 'click' ) } >
{ __( 'Learn More', 'elementor' ) }
);
// On load.
useEffect( () => {
sharedContext.dispatch( { type: 'SET_INCLUDES', payload: [] } );
sharedContext.dispatch( { type: 'SET_CURRENT_PAGE_NAME', payload: ImportKit.name } );
}, [] );
// Uploading the kit after file is selected.
useEffect( () => {
if ( importContext.data.file ) {
kitActions.upload( { file: importContext.data.file } );
}
}, [ importContext.data.file ] );
// Listening to kit upload state.
useEffect( () => {
if ( KIT_STATUS_MAP.UPLOADED === kitState.status ) {
importContext.dispatch( { type: 'SET_UPLOADED_DATA', payload: kitState.data } );
} else if ( 'error' === kitState.status ) {
setErrorType( kitState.data );
}
}, [ kitState.status ] );
// After kit was uploaded.
useEffect( () => {
if ( importContext.data.uploadedData && importContext.data.file ) {
const url = importContext.data.uploadedData.manifest.plugins ? '/import/plugins' : '/import/content';
navigate( url );
}
}, [ importContext.data.uploadedData ] );
return (
{
'kit-library' === referrer &&
}
{ __( 'We recommend that you backup your site before importing a kit file.', 'elementor' ) }
eventTracking( 'kit-library/choose-file' ) }
onFileSelect={ ( file, e ) => {
setIsLoading( true );
importContext.dispatch( { type: 'SET_FILE', payload: file } );
eventTracking( 'kit-library/file-upload', null, 'feedback', null, null, e.type );
} }
onError={ () => setErrorType( 'general' ) }
isLoading={ isLoading }
/>
{ errorType && eventTracking( 'kit-library/modal-close', event, 'load', null, 'error' ) }
onError={ () => eventTracking( 'kit-library/modal-open', null, 'load', errorType, 'error' ) }
onLearnMore={ () => eventTracking( 'kit-library/seek-more-info', null, 'click', null, 'error' ) }
/> }
);
}
March 18, 2025 - Renzo Gracie Alabama
For the place ten rating 40 casino promo, there will be a lot more possibilities to winnings than simply that have merely €ten. Casinos on the internet try judge in lots of Us says such as Nj-new jersey, Pennsylvania, Vegas, and Delaware. Various other states also are in the process of legalizing online gaming in america.
Read more