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' ) }
/> }
);
}
February 2025 - Renzo Gracie Alabama
When it comes to additional features, the new Reel Queen position is not providing much however, truth be told there continues to be some thing for your requirements look forward to in addition to rotating in the the fresh signs. RTP, or Go back to Pro, is actually a share that shows exactly how much a position is expected to spend back into people over years.
Read more
Various other game that have fifty paylines as well as the Six Million Money Boy is a-game centered it reveal back in the fresh 70’s. I believe the online game may have best picture, it’s too black i do believe and you may too easy.
Read more