index.js (1902B)
1 import {__} from '@wordpress/i18n'; 2 3 const {compose} = wp.compose; 4 const {withDispatch, withSelect} = wp.data; 5 import {openSitePreviewModal} from '~redux-templates/stores/actionHelper'; 6 import ChallengeDot from '~redux-templates/challenge/tooltip/ChallengeDot'; 7 import './style.scss' 8 9 function PreviewImportButton(props) { 10 const {data, index, pageData} = props; 11 const {setImportingTemplate, tourActiveButtonGroup} = props; 12 let spinner = null; 13 const triggerImportTemplate = (data) => { 14 if (spinner === null) { 15 spinner = data.ID; 16 setImportingTemplate(data); 17 } 18 } 19 20 return ( 21 <div className="action-buttons"> 22 { 23 pageData[index] && pageData[index]['source'] !== 'wp_block_patterns' && 24 <a className="redux-templates-button preview-button" target="_blank" 25 onClick={() => openSitePreviewModal(index, pageData)}> 26 <i className="fa fa-share"/> {__('Preview', redux_templates.i18n)} 27 </a> 28 } 29 30 <a className="redux-templates-button download-button" 31 onClick={() => triggerImportTemplate(data)}> 32 <i className="fas fa-download"/>{__('Import', redux_templates.i18n)} 33 </a> 34 {tourActiveButtonGroup && tourActiveButtonGroup.ID === pageData[index].ID && <ChallengeDot step={4} /> } 35 </div> 36 ); 37 } 38 39 40 export default compose([ 41 withDispatch((dispatch) => { 42 const { 43 setImportingTemplate 44 } = dispatch('redux-templates/sectionslist'); 45 46 return { 47 setImportingTemplate 48 }; 49 }), 50 withSelect((select, props) => { 51 const {getTourActiveButtonGroup} = select('redux-templates/sectionslist'); 52 return { 53 tourActiveButtonGroup: getTourActiveButtonGroup() 54 }; 55 }) 56 ])(PreviewImportButton);