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 &&
); } March 14, 2025 - Renzo Gracie Alabama

Daily Archives: March 14, 2025

Best Web based casinos in the us Authorized Casino Web sites in the 2025

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

10 Best On-line casino Real cash No-deposit Added bonus 2025 Up-to-date Number

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