/**
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
import { useState } from '@wordpress/element';
import { useSelect } from '@wordpress/data';
// @ts-ignore: has no exported member
import { store as coreStore } from '@wordpress/core-data';
import { Button, Spinner } from '@wordpress/components';
import { Stack } from '@wordpress/ui';
import { help } from '@wordpress/icons';
/**
* Internal dependencies
*/
import { STORE_NAME } from '../../constants';
import HelpModal from './help-modal';
import SettingModal from './setting-modal';
import type { StoreOptions } from '../../store';
export default function GlobalSettings() {
const { options, canManageOptions, hasResolved } = useSelect( ( select ) => {
return {
// @ts-ignore
options: select( STORE_NAME ).getOptions() as StoreOptions,
canManageOptions: !! select( coreStore ).canUser( 'update', {
kind: 'root',
name: 'site',
} ),
hasResolved:
// @ts-ignore
select( STORE_NAME ).hasFinishedResolution( 'getOptions' ) &&
select( coreStore ).hasFinishedResolution( 'canUser', [
'update',
{ kind: 'root', name: 'site' },
] ),
};
}, [] );
const [ isSettingModalOpen, setIsSettingModalOpen ] = useState( false );
const [ isHelpModalOpen, setIsHelpModalOpen ] = useState( false );
const showGlobalSetting = canManageOptions || options?.show_global_setting;
return (
<>
{ ! hasResolved && }
{ hasResolved && showGlobalSetting && (
) }
{ isHelpModalOpen && }
{ isSettingModalOpen && (
) }
>
);
}