D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
ltfsolutionsco
/
www
/
wp-content
/
plugins
/
ml-slider
/
admin
/
assets
/
js
/
gutenberg
/
Filename :
editor-block.js
back
Copy
import icon from './components/metaslider-icon' // Edit function import edit from './components/block-edit' // Save function import save from './components/block-save' // Import Gutenberg variables and functions const wp = window.wp const {__} = wp.i18n const { registerBlockType } = wp.blocks const {registerStore, dispatch, withSelect} = wp.data const {apiRequest} = wp // Default state for the store const DEFAULT_STATE = { items: [], isLoading: true } /** * Register a store, to fetch and store our slideshows * https://github.com/WordPress/gutenberg/tree/master/data */ registerStore('metaslider', { reducer(state = DEFAULT_STATE, action) { switch (action.type) { case 'SET_SLIDESHOWS': return { items: action.items, isLoading: false } } return state }, actions: { setSlideshows(items) { return { type: 'SET_SLIDESHOWS', items } } }, selectors: { getSlideshows(state) { return state } }, resolvers: { getSlideshows(state, result) { // const items = await try { apiRequest({path: '/metaslider/v1/slideshow/list'}).then(result => { if (true === result.success) { dispatch('metaslider').setSlideshows(result.data) } else { console.warn('MetaSlider: API Request error:', result.data.message) dispatch('metaslider').setSlideshows([]) } }) } catch (error) { console.warn('MetaSlider: API Request error:', error) dispatch('metaslider').setSlideshows([]) } } } }) /** * Register Gutenberg Block * * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType('metaslider/slider', { title: 'MetaSlider', description: __('Use MetaSlider to insert slideshows and sliders in your page', 'ml-slider'), icon: icon, category: 'common', keywords: [__('slider', 'ml-slider'), __('slideshow', 'ml-slider'), __('gallery', 'ml-slider')], attributes: { slideshowId: { type: 'number', default: 0 }, stretch: { type: 'string', default: 'normal' }, containerClass: { type: 'string', default: '' } }, supports: { customClassName: false }, /** * Edit function * withSelect is the gets content from the gutenberg store. The MS store is setup above. */ edit: withSelect((select, ownProps) => { const {getSlideshows} = select('metaslider') return { slideshows: getSlideshows() } })( edit ), /** * The "save" property must be specified and must be a valid function. * * @param {obj} props * @return {bool} false because content is dynamic (see php file) */ save: props => save(props), /** * getEditWrapperProps: adds attributes to root block * * @param {object} attributes * @return {object|void} */ getEditWrapperProps(attributes) { const {stretch} = attributes if (['wide', 'full', 'normal'].indexOf(stretch) !== -1) { return {'data-align': stretch} } } })
Name
Size
Last Modified
Owner
Permissions
Actions
components
Dir
February 03 2024 3:18:15
ltfsolutionsco
0755
editor-block.js
3.596
KB
February 03 2024 3:18:15
ltfsolutionsco
0644
2017 © D7net | D704T team