@chief-editor/brick-control
Version:
Control Brick for chief editor
1 lines • 1.68 kB
JavaScript
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};import React,{useCallback,useState}from"react";import{InputNumber,Tag}from"@chief-editor/ui";import{LinkRec}from"@chief-editor/icons";import{useRefCallback}from"@rc-hooks/use";export var SizeComponent=function(e){var t=e.value,a=e.onValueChange,n=e.defaultUniformScale,i=useState(void 0!==n&&n),l=i[0],r=i[1],o=useRefCallback(a),c=useCallback((function(e,a){var n=t.width,i=t.height;l&&(n=0===n?.5:n,i=0===i?.5:i),a?(l&&(n*=e/i),i=e):(l&&(i*=e/n),n=e),o({width:n,height:i})}),[t,l]),u=useCallback((function(e){return c(e)}),[t,l]),s=useCallback((function(e){return c(e,!0)}),[t,l]);return React.createElement("div",{style:{display:"flex",flex:"none"}},React.createElement(InputNumber,{prefix:"W",onValueChange:u,min:0,value:t.width,style:{marginRight:"8px",width:100,flex:"none"}}),React.createElement(InputNumber,{prefix:"H",onValueChange:s,value:t.height,min:0,style:{marginRight:"4px",width:100,flex:"none"}}),React.createElement(Tag.Checkable,{style:{display:"flex",width:16,flex:"none",justifyContent:"center"},checked:l,onChange:r},React.createElement(LinkRec,{style:{display:"flex",alignItems:"center",fontSize:"24px"}})))};export function SizeBrick(e){var t=e.styles,a=e.setValue,n=e.layout,i=e.value,l=e.config.props.defaultUniformScale,r=e.creator;return React.createElement("div",{"data-id":r,style:__assign(__assign({display:"flex"},n),t)},React.createElement(SizeComponent,{value:i,onValueChange:a,defaultUniformScale:l}))}