@gechiui/block-editor
Version:
86 lines (82 loc) • 2.84 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@gechiui/element";
/**
* GeChiUI dependencies
*/
import { InspectorControls, useSetting } from '@gechiui/block-editor';
import { BottomSheet, ColorSettings, FocalPointSettingsPanel, ImageLinkDestinationsScreen, LinkPickerScreen } from '@gechiui/components';
import { compose } from '@gechiui/compose';
import { withDispatch, withSelect } from '@gechiui/data';
/**
* Internal dependencies
*/
import styles from './container.native.scss';
import { store as blockEditorStore } from '../../store';
export const blockSettingsScreens = {
settings: 'Settings',
color: 'Color',
focalPoint: 'FocalPoint',
linkPicker: 'linkPicker',
imageLinkDestinations: 'imageLinkDestinations'
};
function BottomSheetSettings(_ref) {
let {
editorSidebarOpened,
closeGeneralSidebar,
settings,
...props
} = _ref;
const colorSettings = {
colors: useSetting('color.palette') || settings.colors,
gradients: useSetting('color.gradients') || settings.gradients
};
return createElement(BottomSheet, _extends({
isVisible: editorSidebarOpened,
onClose: closeGeneralSidebar,
hideHeader: true,
contentStyle: styles.content,
hasNavigation: true
}, props), createElement(BottomSheet.NavigationContainer, {
animate: true,
main: true
}, createElement(BottomSheet.NavigationScreen, {
name: blockSettingsScreens.settings
}, createElement(InspectorControls.Slot, null)), createElement(BottomSheet.NavigationScreen, {
name: BottomSheet.SubSheet.screenName
}, createElement(BottomSheet.SubSheet.Slot, null)), createElement(BottomSheet.NavigationScreen, {
name: blockSettingsScreens.color
}, createElement(ColorSettings, {
defaultSettings: colorSettings
})), createElement(BottomSheet.NavigationScreen, {
name: blockSettingsScreens.focalPoint,
fullScreen: true
}, createElement(FocalPointSettingsPanel, null)), createElement(BottomSheet.NavigationScreen, {
name: blockSettingsScreens.linkPicker,
fullScreen: true,
isScrollable: true
}, createElement(LinkPickerScreen, {
returnScreenName: blockSettingsScreens.settings
})), createElement(BottomSheet.NavigationScreen, {
name: blockSettingsScreens.imageLinkDestinations
}, createElement(ImageLinkDestinationsScreen, props))));
}
export default compose([withSelect(select => {
const {
isEditorSidebarOpened
} = select('core/edit-post');
const {
getSettings
} = select(blockEditorStore);
return {
settings: getSettings(),
editorSidebarOpened: isEditorSidebarOpened()
};
}), withDispatch(dispatch => {
const {
closeGeneralSidebar
} = dispatch('core/edit-post');
return {
closeGeneralSidebar
};
})])(BottomSheetSettings);
//# sourceMappingURL=container.native.js.map