@chief-editor/brick-control
Version:
Control Brick for chief editor
1 lines • 2.08 kB
JavaScript
;var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,a=1,r=arguments.length;a<r;a++)for(var n in t=arguments[a])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t};Object.defineProperty(exports,"__esModule",{value:!0});var ui_1=require("@chief-editor/ui"),use_1=require("@rc-hooks/use"),react_1=__importStar(require("react")),type_1=require("./type");function UnionBrick(e){var t=e.styles,a=e.layout,r=e.setState,n=e.state,i=e.creator,l=e.renderPart,u=e.config,c=e.datasource,o=e.env,s=u.props,d=s.unionType,_=s.__temp_index__,f=s.readonly,p=s.disabled,v=react_1.useCallback((function(e){r({currentIndex:e})}),[]),y=n.currentIndex;"flow"!==o&&(y=null!=_&&""!==_?_:c[0].value);return react_1.default.createElement("div",{"data-id":i,style:__assign(__assign({},t),a)},react_1.default.createElement("div",null,react_1.default.createElement(UnionHeader,{unionType:d,datasource:c,value:y,onChange:v,disabled:p,readonly:f})),c.map((function(e){var t=e.value;return react_1.default.createElement("div",{key:"union_item_"+t,style:{display:t===y?"block":"none"}},l(String(t)))})))}function UnionHeader(e){var t=e.unionType,a=e.datasource,r=e.value,n=e.onChange,i=e.disabled,l=e.readonly,u=use_1.useRefCallback(n),c=react_1.useCallback((function(e){null!=e&&u(e)}),[]);switch(t){case type_1.UnionType.SELECT:return react_1.default.createElement(ui_1.Select,{value:r,onChange:c,disabled:i||l},a.map((function(e){return react_1.default.createElement(ui_1.Select.Option,{key:e.value,value:e.value,label:e.label,disabled:e.disabled})})));case type_1.UnionType.TAB:return react_1.default.createElement(ui_1.Tab,{activeId:String(r),onChange:c},a.map((function(e){return react_1.default.createElement(ui_1.Tab.Item,{key:e.value,id:String(e.value),tab:e.label,disabled:e.disabled||i||l})})))}}exports.UnionBrick=UnionBrick;