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 14, 2025 - Renzo Gracie Alabama
It’s got an average RTP of 95.1% and you will wins up to 500x your stake, that have a risk of 0.01 coins. Anyone more 21 can be choice real money in the Connecticut Casinos on the internet, however their collection of providers has been fairly restricted.
Read more
Online casinos have really made it easier than in the past to love the new enjoyment away from gaming having real money. No deposit incentives, people can also enjoy a variety of game as opposed to risking their funds. The newest court design for United states online gambling is actually a steady state out of flux.
Read more
Refill their earliest details including your email/phone number to start creating your account. Prompt step is required if you feel playing is an excellent situation to you. There are various resources available for those people discussing betting habits, such Bettors Private and regional organizations.
Read more