%PDF- %PDF-
| Direktori : /home/dopla/www/wp-content/plugins/ml-slider/extendify-sdk/src/ |
| Current File : /home/dopla/www/wp-content/plugins/ml-slider/extendify-sdk/src/buttons.js |
import { __ } from '@wordpress/i18n'
import { renderToString, render } from '@wordpress/element'
import { registerPlugin } from '@wordpress/plugins'
import { openModal } from './util/general'
import { PluginSidebarMoreMenuItem } from '@wordpress/edit-post'
import { Icon } from '@wordpress/icons'
import { brandMark } from './components/icons/'
import LibraryAccessModal from './components/LibraryAccessModal'
const openLibrary = (event) => {
openModal(
event.target.closest('[data-extendify-identifier]')?.dataset
?.extendifyIdentifier,
)
}
// This returns true if the user object is null (Library never opened), or if it's enabled in the user settings
const isAdmin = () =>
window.extendifySdkData.user === null ||
window.extendifySdkData?.user?.state?.isAdmin
const isGlobalLibraryEnabled = () =>
window.extendifySdkData.sitesettings === null ||
window.extendifySdkData?.sitesettings?.state?.enabled
const isLibraryEnabled = () =>
window.extendifySdkData.user === null
? isGlobalLibraryEnabled()
: window.extendifySdkData?.user?.state?.enabled
const mainButton = (
<div id="extendify-templates-inserter" className="extendify-sdk">
<button
style="background:#D9F1EE;color:#1e1e1e;border:1px solid #949494 !important;font-weight:bold;font-size:14px;padding:8px;margin-right:8px"
type="button"
data-extendify-identifier="main-button"
id="extendify-templates-inserter-btn"
className="components-button">
<Icon icon={brandMark} size={24} className="-ml-1 mr-1" />
{__('Library', 'extendify-sdk')}
</button>
</div>
)
// Add the MAIN button when Gutenberg is available and ready
if (window._wpLoadBlockEditor) {
const finish = window.wp.data.subscribe(() => {
requestAnimationFrame(() => {
if (!isGlobalLibraryEnabled() && !isAdmin()) {
return
}
// Redundant extra check added because of a bug where the above check wasn't working
if (document.getElementById('extendify-templates-inserter-btn')) {
return
}
if (!document.querySelector('.edit-post-header-toolbar')) {
return
}
document
.querySelector('.edit-post-header-toolbar')
.insertAdjacentHTML('beforeend', renderToString(mainButton))
document
.getElementById('extendify-templates-inserter-btn')
.addEventListener('click', openLibrary)
if (!isLibraryEnabled()) {
document
.getElementById('extendify-templates-inserter-btn')
.classList.add('invisible')
}
finish()
})
})
}
// The CTA button inside patterns
if (window._wpLoadBlockEditor) {
const finish = window.wp.data.subscribe(() => {
requestAnimationFrame(() => {
// Redundant extra check added because of a bug where the above check wasn't working
if (!isGlobalLibraryEnabled() && !isAdmin()) {
return
}
if (!document.querySelector('[id$=patterns-view]')) {
return
}
if (document.getElementById('extendify-cta-button')) {
return
}
const ctaButton = (
<div>
<button
id="extendify-cta-button"
style="margin:1rem 1rem 0"
data-extendify-identifier="patterns-cta"
className="components-button is-secondary">
{__(
'Discover more patterns in Extendify Library',
'extendify-sdk',
)}
</button>
</div>
)
document
.querySelector('[id$=patterns-view]')
.insertAdjacentHTML('afterbegin', renderToString(ctaButton))
document
.getElementById('extendify-cta-button')
.addEventListener('click', openLibrary)
finish()
})
})
}
// 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-sdk')}
</PluginSidebarMoreMenuItem>
</>
)
}
// Load this button always, which is used to enable or disable
window._wpLoadBlockEditor &&
registerPlugin('extendify-settings-enable-disable', {
render: LibraryEnableDisable,
})