UNPKG

@chief-editor/ui

Version:

UI Component for chief editor

1 lines 2.61 kB
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,s=arguments.length;n<s;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,t){var n={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(s=Object.getOwnPropertySymbols(e);r<s.length;r++)t.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(n[s[r]]=e[s[r]])}return n};import{useElementSize}from"@rc-hooks/dom";import{useCombineRef,useUpdate}from"@rc-hooks/use";import{classnames}from"@co-hooks/util";import React,{useCallback,useRef}from"react";import{usePrefixCls}from"../../hooks";export var Content=function(e){var t=e.prefixCls,n=e.icon,s=e.className,r=e.header,i=e.footer,a=e.children,l=e.style,o=void 0===l?{}:l,c=e.width,f=e.enableSize,u=void 0!==f&&f,m=e.containerRef,p=void 0===m?null:m,h=__rest(e,["prefixCls","icon","className","header","footer","children","style","width","enableSize","containerRef"]),d=useRef(null),v=useRef(null),C=useRef(null),x=useRef(null),y=useUpdate(),R=useCombineRef(d,p),_=useElementSize(d,(function(){return u}),y),P=useElementSize(v,(function(){return u}),y),g=useElementSize(C,(function(){return u}),y),b=useElementSize(x,(function(){return u}),y),w=_.height-P.height-g.height,E=u&&w<b.height,O=classnames(usePrefixCls("content-container"),usePrefixCls(t+"-container"),s),N=classnames(usePrefixCls("content-inner"),usePrefixCls(t+"-inner",{"no-footer":!i,overflow:E})),S=classnames(usePrefixCls("content-icon-wrapper"),usePrefixCls(t+"-icon-wrapper")),z=classnames(usePrefixCls("content-inner-wrapper"),usePrefixCls(t+"-inner-wrapper")),j=classnames(usePrefixCls("content-header"),usePrefixCls(t+"-header",{overflow:E})),k=classnames(usePrefixCls("content-footer"),usePrefixCls(t+"-footer",{overflow:E})),U=useCallback((function(e){return n?React.createElement("div",{className:S},e):null}),[n]);return React.createElement("div",__assign({},h,{ref:R,className:O,style:__assign(__assign({},o),{width:null!=c?c:o.width})}),r?React.createElement("div",{ref:v,className:j},U(n),React.createElement("div",{className:z},"function"==typeof r?r():r)):null,React.createElement("div",{className:N,style:{height:u?w+"px":void 0}},U(!r&&n),React.createElement("div",{className:z,ref:x},"function"==typeof a?a():a)),i?React.createElement("div",{ref:C,className:k},U(),React.createElement("div",{className:z},"function"==typeof i?i():i)):null)};