UNPKG

@chief-editor/brick-control

Version:

Control Brick for chief editor

1 lines 1.69 kB
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var a,n=1,t=arguments.length;n<t;n++)for(var r in a=arguments[n])Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r]);return e}).apply(this,arguments)};import{Select,Tab}from"@chief-editor/ui";import{useRefCallback}from"@rc-hooks/use";import React,{useCallback}from"react";import{UnionType}from"./type";export function UnionBrick(e){var a=e.styles,n=e.layout,t=e.setState,r=e.state,l=e.creator,i=e.renderPart,o=e.config,c=e.datasource,u=e.env,s=o.props,d=s.unionType,p=s.__temp_index__,b=s.readonly,m=s.disabled,v=useCallback((function(e){t({currentIndex:e})}),[]),y=r.currentIndex;"flow"!==u&&(y=null!=p&&""!==p?p:c[0].value);return React.createElement("div",{"data-id":l,style:__assign(__assign({},a),n)},React.createElement("div",null,React.createElement(UnionHeader,{unionType:d,datasource:c,value:y,onChange:v,disabled:m,readonly:b})),c.map((function(e){var a=e.value;return React.createElement("div",{key:"union_item_"+a,style:{display:a===y?"block":"none"}},i(String(a)))})))}function UnionHeader(e){var a=e.unionType,n=e.datasource,t=e.value,r=e.onChange,l=e.disabled,i=e.readonly,o=useRefCallback(r),c=useCallback((function(e){null!=e&&o(e)}),[]);switch(a){case UnionType.SELECT:return React.createElement(Select,{value:t,onChange:c,disabled:l||i},n.map((function(e){return React.createElement(Select.Option,{key:e.value,value:e.value,label:e.label,disabled:e.disabled})})));case UnionType.TAB:return React.createElement(Tab,{activeId:String(t),onChange:c},n.map((function(e){return React.createElement(Tab.Item,{key:e.value,id:String(e.value),tab:e.label,disabled:e.disabled||l||i})})))}}