UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

85 lines (84 loc) 3.06 kB
"use strict"; var jsxRuntime = require("react/jsx-runtime"), React = require("react"), reactIs = require("react-is"), sanity = require("sanity"), ui = require("@sanity/ui"), getJsonStream = require("./getJsonStream.js"), StructureToolProvider = require("./StructureToolProvider.js"), icons = require("@sanity/icons"); require("sanity/router"); require("@sanity/types"); require("@sanity/util/paths"); require("lodash/omit.js"); require("lodash/isNumber.js"); require("lodash/isString.js"); require("react-rx"); var styled = require("styled-components"); function _interopDefaultCompat(e) { return e && typeof e == "object" && "default" in e ? e : { default: e }; } var styled__default = /* @__PURE__ */ _interopDefaultCompat(styled); const Root = styled__default.default(ui.Box)` position: relative; `; function UserComponentPaneContent(props) { const { children } = props, { collapsed } = StructureToolProvider.usePane(); return /* @__PURE__ */ jsxRuntime.jsx(Root, { hidden: collapsed, height: "fill", overflow: "auto", children }); } function UserComponentPaneHeader(props) { const { actionHandlers, index, menuItems, menuItemGroups, title } = props, { features } = StructureToolProvider.useStructureTool(); return !(menuItems != null && menuItems.length) && !title ? null : /* @__PURE__ */ jsxRuntime.jsx( StructureToolProvider.PaneHeader, { actions: /* @__PURE__ */ jsxRuntime.jsx( StructureToolProvider.PaneHeaderActions, { menuItems, menuItemGroups, actionHandlers } ), backButton: features.backButton && index > 0 && /* @__PURE__ */ jsxRuntime.jsx( getJsonStream.Button, { as: StructureToolProvider.BackLink, "data-as": "a", icon: icons.ArrowLeftIcon, mode: "bleed", tooltipProps: { content: "Back" } } ), title } ); } function UserComponentPane(props) { const { index, pane, paneKey, ...restProps } = props, { child, component, menuItems, menuItemGroups, // eslint-disable-next-line @typescript-eslint/no-unused-vars type: _unused, ...restPane } = pane, [ref, setRef] = React.useState(null), { title = "" } = sanity.useI18nText(pane); return /* @__PURE__ */ jsxRuntime.jsxs(StructureToolProvider.Pane, { id: paneKey, minWidth: 320, selected: restProps.isSelected, children: [ /* @__PURE__ */ jsxRuntime.jsx( UserComponentPaneHeader, { actionHandlers: ref == null ? void 0 : ref.actionHandlers, index, menuItems, menuItemGroups, title } ), /* @__PURE__ */ jsxRuntime.jsxs(UserComponentPaneContent, { children: [ reactIs.isValidElementType(component) && React.createElement(component, { ...restProps, ...restPane, ref: setRef, child, // @todo: Fix typings paneKey }), React.isValidElement(component) && component ] }) ] }); } exports.default = UserComponentPane; //# sourceMappingURL=index.js.map