%PDF- %PDF-
| Direktori : /home/dopla/www/wp-content/plugins/ml-slider/extendify-sdk/src/components/ |
| Current File : /home/dopla/www/wp-content/plugins/ml-slider/extendify-sdk/src/components/LibraryAccessModal.js |
import { Modal } from '@wordpress/components'
import { unmountComponentAtNode, useState, useEffect } from '@wordpress/element'
import { ToggleControl } from '@wordpress/components'
import { __ } from '@wordpress/i18n'
import { useSelect } from '@wordpress/data'
import { useUserStore } from '../state/User'
import { useSiteSettingsStore } from '../state/SiteSettings'
const LibraryAccessModal = () => {
const isAdmin = useSelect((select) =>
select('core').canUser('create', 'users'),
)
const [libraryforMyself, setLibraryforMyself] = useState(
useUserStore((store) => store.enabled),
)
const [libraryforEveryone, setLibraryforEveryone] = useState(
useSiteSettingsStore((store) => store.enabled),
)
const closeModal = () => {
const util = document.getElementById('extendify-util')
unmountComponentAtNode(util)
}
useEffect(() => {
hideButton(!libraryforMyself)
}, [libraryforMyself])
function hideButton(state = true) {
const button = document.getElementById(
'extendify-templates-inserter-btn',
)
if (!button) return
if (state) {
button.classList.add('invisible')
} else {
button.classList.remove('invisible')
}
}
async function saveUser(value) {
await useUserStore.setState({ enabled: value })
}
async function saveSetting(value) {
await useSiteSettingsStore.setState({ enabled: value })
}
async function saveToggle(state, type) {
if (type === 'global') {
await saveSetting(state)
} else {
await saveUser(state)
}
}
function handleToggle(type) {
if (type === 'global') {
setLibraryforEveryone((state) => {
saveToggle(!state, type)
return !state
})
} else {
setLibraryforMyself((state) => {
hideButton(!state)
saveToggle(!state, type)
return !state
})
}
}
return (
<Modal
title={__('Extendify Settings', 'extendify-sdk')}
onRequestClose={closeModal}>
<ToggleControl
label={
isAdmin
? __('Enable the library for myself', 'extendify-sdk')
: __('Enable the library', 'extendify-sdk')
}
help={__(
'Publish with hundreds of patterns & page layouts',
'extendify-sdk',
)}
checked={libraryforMyself}
onChange={() => handleToggle('user')}
/>
{isAdmin && (
<>
<br />
<ToggleControl
label={__(
'Allow all users to publish with the library',
)}
help={__(
'Everyone publishes with patterns & page layouts',
'extendify-sdk',
)}
checked={libraryforEveryone}
onChange={() => handleToggle('global')}
/>
</>
)}
</Modal>
)
}
export default LibraryAccessModal