@gechiui/block-editor
Version:
61 lines (48 loc) • 1.27 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LayoutProvider = void 0;
exports.LayoutStyle = LayoutStyle;
exports.defaultLayout = void 0;
exports.useLayout = useLayout;
var _element = require("@gechiui/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _layouts = require("../../layouts");
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
const defaultLayout = {
type: 'default'
};
exports.defaultLayout = defaultLayout;
const Layout = (0, _element.createContext)(defaultLayout);
/**
* Allows to define the layout.
*/
const LayoutProvider = Layout.Provider;
/**
* React hook used to retrieve the layout config.
*/
exports.LayoutProvider = LayoutProvider;
function useLayout() {
return (0, _element.useContext)(Layout);
}
function LayoutStyle(_ref) {
let {
layout = {},
...props
} = _ref;
const layoutType = (0, _layouts.getLayoutType)(layout.type);
if (layoutType) {
return (0, _element.createElement)(layoutType.save, (0, _extends2.default)({
layout: layout
}, props));
}
return null;
}
//# sourceMappingURL=layout.js.map