import React, { useContext } from 'react';
import { __ } from '@wordpress/i18n';
import { ReactComponent as StarsIcon } from '../assets/images/icons/icon-stars.svg';
import { ReactComponent as ArrowsOuterIcon } from '../assets/images/icons/icon-arrows-direction-outer.svg';
import { ReactComponent as ArrowsInsideIcon } from '../assets/images/icons/icon-arrows-direction-inside.svg';
import { Button, TextArea } from '../elements/JSXElements';
import { AppContext } from '../app/context';
import { runResultsGenerator } from '../app/api';
import { ScriptData } from '../app/types';
import '../assets/styles/components/_GeneratedResult.scss';
// declare globals
declare const scriptData: ScriptData;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
declare const wp: any; // used any type until wordpress provide better typing
// eslint-disable-next-line @typescript-eslint/no-explicit-any
declare const elementor: any; // used any type until wordpress provide better typing
const GeneratedResult: React.FC<{result: { text: string, loading: boolean}}> = ( { result } ) => {
const { state, dispatch, togglePopup } = useContext( AppContext );
const setText = ( text: string ) => {
dispatch( { type: 'generatedResults', payload: { ...state.generatedResults, text } } );
};
const addIntoEditor = () => {
if ( scriptData.editor_type === 'gutenberg' ) {
wp.data.dispatch( 'core/block-editor' ).insertBlock( wp.blocks.createBlock( 'core/paragraph', {
content: result.text.replace( /\n/g, '
' ),
} ), 0 );
} else if ( scriptData.editor_type === 'elementor' ) {
const view = elementor?.getPanelView().getCurrentPageView();
if ( view ) {
const editorType = view.model.get( 'settings' ).controls.editor.type;
const text = editorType === 'wysiwyg' ? result.text.replace( /\n/g, '
' ) : result.text;
view.model.setSetting( 'editor', text );
view.render();
}
}
togglePopup();
};
return (