🚀 Advanced Web Server Manager
Complete File Manager & Terminal - Standalone Version
By Sid Gifari | Gifari Industries
Current path:
/
/
mnt
/
web613
/
c2
/
38
/
570372438
/
htdocs
/
STRATO-apps
/
wordpress_02
/
app
/
wp-content
/
plugins
/
elementor-pro
/
core
/
app
/
modules
/
site-editor
/
assets
/
js
/
organisms
✏️
Editing: site-templates.js
import { CssGrid, Dialog } from '@elementor/app-ui'; import SiteTemplate from '../molecules/site-template'; import { PartActionsDialogs } from '../part-actions/dialogs-and-buttons'; import { Context as TemplatesContext } from '../context/templates'; import useTemplatesScreenshot from '../hooks/use-templates-screenshot'; export default function SiteTemplates( props ) { const { templates: contextTemplates, action, resetActionState } = React.useContext( TemplatesContext ); let gridColumns, templates; // Make the templates object a memorize value, will re run again only if // templates has been changed, also sort the templates by `isActive`. templates = React.useMemo( () => { return Object.values( contextTemplates ) .sort( ( a, b ) => { // This sort make sure to show first the active templates, second the // inactive templates that are not draft, and then the drafts, // in each category it sorts it inside by date. if ( ! b.isActive && ! a.isActive ) { if ( ( 'draft' === b.status && 'draft' === a.status ) || ( 'draft' !== b.status && 'draft' !== a.status ) ) { return b.date < a.date ? 1 : -1; } return 'draft' === a.status ? 1 : -1; } if ( b.isActive && a.isActive ) { return b.date < a.date ? 1 : -1; } return b.isActive ? 1 : -1; } ); }, [ contextTemplates ] ); // Start to capture screenshots. useTemplatesScreenshot( props.type ); const siteTemplateConfig = {}; if ( props.type ) { templates = templates.filter( ( item ) => item.type === props.type ); siteTemplateConfig.extended = true; siteTemplateConfig.type = props.type; switch ( props.type ) { case 'header': case 'footer': gridColumns = 1; siteTemplateConfig.aspectRatio = 'wide'; break; default: gridColumns = 2; } } if ( ! templates || ! templates.length ) { return <h3>{ __( 'No Templates found. Want to create one?', 'elementor-pro' ) }...</h3>; } return ( <section className="e-site-editor__site-templates"> <PartActionsDialogs /> { action.error && <Dialog text={ action.error } dismissButtonText={ __( 'Go Back', 'elementor-pro' ) } dismissButtonOnClick={ resetActionState } approveButtonText={ __( 'Learn More', 'elementor-pro' ) } approveButtonColor="link" approveButtonUrl="https://go.elementor.com/app-theme-builder-template-load-issue" approveButtonTarget="_target" /> } <CssGrid columns={ gridColumns } spacing={ 24 } colMinWidth={ 200 }> { templates.map( ( item ) => <SiteTemplate key={ item.id } { ... item } { ... siteTemplateConfig } isSelected={ parseInt( props.id ) === item.id } />, ) } </CssGrid> </section> ); } SiteTemplates.propTypes = { type: PropTypes.string, id: PropTypes.string, };
💾 Save Changes
❌ Cancel