Files
roi-theme/wp-content/plugins/thrive-ultimatum/blocks/src/utils.js
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

100 lines
2.2 KiB
JavaScript
Executable File

import { __ } from '@wordpress/i18n';
import { SelectControl } from '@wordpress/components';
import thriveLogo from './thrive-logo';
const createElement = wp.element.createElement;
wp.domReady( function() {
wp.blocks.updateCategory( 'thrive', { icon: thriveLogo } );
} );
/**
* Once an block is update try to update the preview in gutenberg too
*/
window.addEventListener(
'storage',
( storageEvent ) => {
if ( storageEvent.key && storageEvent.key.includes( 'tvu_design' ) ) {
const design = storageEvent.key.split( '-' )[ 1 ],
iframes = document.getElementsByClassName(
`tvu-block-${ design }`
);
Array.prototype.forEach.call( iframes, ( iframe ) => {
iframe.setAttribute(
'src',
`${ iframe.getAttribute(
'src'
) }?tvu=${ generateRandomString() }`
);
} );
localStorage.removeItem( storageEvent.key );
}
},
false
);
/**
* Helper functions
*/
export function tveOuterHeight( el ) {
if ( ! el ) {
return 0;
}
let height = el.offsetHeight;
const style = getComputedStyle( el );
height += parseInt( style.marginTop ) + parseInt( style.marginBottom );
return height;
}
export function generateRandomString( radix = 16 ) {
return (
new Date().getTime() + Math.floor( Math.random() * 100000 )
).toString( radix );
}
export function getPreviewLink( link ) {
return `${ link }${
link.split( '?' )[ 1 ] ? '&' : '?'
}tve_block_preview=1`;
}
export function renderCampaignSelect( opts, props, label = '' ) {
return createElement(
'div',
{
class: 'tvu-block-select-wrapper',
},
createElement( SelectControl, {
label: __( label, 'thrive-ult' ),
options: opts,
onChange( value ) {
props.setAttributes( {
selectedCampaign: parseInt( value ),
} );
},
value: props.attributes.selectedCampaign,
} )
);
}
export function renderDesignSelect( opts, props, label = '' ) {
return createElement(
'div',
{
class: 'tvu-block-select-wrapper',
},
createElement( SelectControl, {
label: __( label, 'thrive-ult' ),
options: opts,
onChange( value ) {
props.setAttributes( {
selectedDesign: parseInt( value ),
} );
},
value: props.attributes.selectedDesign,
} )
);
}