%PDF- %PDF-
| Direktori : /var/www/projetos/takthua.com.br/wp-content/plugins/ml-slider/extendify-sdk/src/ |
| Current File : //var/www/projetos/takthua.com.br/wp-content/plugins/ml-slider/extendify-sdk/src/buttons.js |
import { PluginSidebarMoreMenuItem } from '@wordpress/edit-post'
import { render } from '@wordpress/element'
import { __ } from '@wordpress/i18n'
import { Icon } from '@wordpress/icons'
import { registerPlugin } from '@wordpress/plugins'
import LibraryAccessModal from '@extendify/components/LibraryAccessModal'
import { CtaButton, MainButtonWrapper } from '@extendify/components/MainButtons'
import { brandMark } from '@extendify/components/icons/'
const userState = window.extendifyData?.user?.state
const isAdmin = () => window.extendifyData.user === null || userState?.isAdmin
const isGlobalLibraryEnabled = () =>
window.extendifyData.sitesettings === null ||
window.extendifyData?.sitesettings?.state?.enabled
const isLibraryEnabled = () =>
window.extendifyData.user === null
? isGlobalLibraryEnabled()
: userState?.enabled
// Add the MAIN button when Gutenberg is available and ready
const finish = window?.wp?.data?.subscribe(() => {
requestAnimationFrame(() => {
if (!isGlobalLibraryEnabled() && !isAdmin()) {
return
}
if (document.getElementById('extendify-templates-inserter')) {
return
}
if (
!document.querySelector('.edit-post-header-toolbar') &&
!document.querySelector('.edit-site-header_start') // FSE
) {
return
}
const buttonContainer = Object.assign(document.createElement('div'), {
id: 'extendify-templates-inserter',
})
// Standard block editor
document
.querySelector('.edit-post-header-toolbar')
?.append(buttonContainer)
// FSE block editor
document
.querySelector('.edit-site-header_start')
?.append(buttonContainer)
render(<MainButtonWrapper />, buttonContainer)
if (!isLibraryEnabled()) {
document
.getElementById('extendify-templates-inserter-btn')
.classList.add('hidden')
}
finish()
})
})
// The CTA button inside patterns
const finish2 = window?.wp?.data?.subscribe(() => {
requestAnimationFrame(() => {
if (!isGlobalLibraryEnabled() && !isAdmin()) {
return
}
if (!document.querySelector('[id$=patterns-view]')) {
return
}
if (document.getElementById('extendify-cta-button')) {
return
}
const ctaButtonContainer = Object.assign(
document.createElement('div'),
{ id: 'extendify-cta-button-container' },
)
document
.querySelector('[id$=patterns-view]')
.prepend(ctaButtonContainer)
render(<CtaButton />, ctaButtonContainer)
finish2()
})
})
// This will add a button to enable or disable the library button
const LibraryEnableDisable = () => {
function setOpenSiteSettingsModal() {
const util = document.getElementById('extendify-util')
render(<LibraryAccessModal />, util)
}
return (
<>
<PluginSidebarMoreMenuItem
onClick={setOpenSiteSettingsModal}
icon={<Icon icon={brandMark} size={24} />}>
{' '}
{__('Extendify', 'extendify')}
</PluginSidebarMoreMenuItem>
</>
)
}
// Load this button always, which is used to enable or disable
// FSE doesn't seem to recgonize registerPlugin (yet)
try {
registerPlugin('extendify-settings-enable-disable', {
render: LibraryEnableDisable,
})
} catch (e) {
console.error(
'registerPlugin not supported? (error handled gradefully)',
e.message,
)
}