shineout 3.6.5-beta.1 → 3.6.5-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -514,5 +514,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
514
514
  // 此文件由脚本自动生成,请勿直接修改。
515
515
  // This file was generated automatically by a script. Please do not modify it directly.
516
516
  var _default = exports.default = {
517
- version: '3.6.5-beta.1'
517
+ version: '3.6.5-beta.2'
518
518
  };
package/dist/shineout.js CHANGED
@@ -12217,7 +12217,7 @@ var handleStyle = function handleStyle(style) {
12217
12217
  };
12218
12218
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12219
12219
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12220
- /* harmony default export */ var version = ('3.6.5-beta.1');
12220
+ /* harmony default export */ var version = ('3.6.5-beta.2');
12221
12221
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12222
12222
 
12223
12223
 
@@ -19757,9 +19757,14 @@ var ImageStyle = objectSpread2_default()(objectSpread2_default()({
19757
19757
  },
19758
19758
  fill: {
19759
19759
  '& $inner': {
19760
- backgroundSize: 'cover',
19761
- backgroundPosition: '50% 50%',
19762
- backgroundRepeat: 'no-repeat'
19760
+ '& > img': {
19761
+ position: 'absolute',
19762
+ top: '50%',
19763
+ left: '50%',
19764
+ transform: 'translate(-50%, -50%)',
19765
+ maxWidth: 'none',
19766
+ maxHeight: 'none'
19767
+ }
19763
19768
  }
19764
19769
  },
19765
19770
  previewMask: {
@@ -51220,6 +51225,10 @@ var useImage = function useImage() {
51220
51225
  _React$useState2 = slicedToArray_default()(_React$useState, 2),
51221
51226
  status = _React$useState2[0],
51222
51227
  setStatus = _React$useState2[1];
51228
+ var _React$useState3 = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState({}),
51229
+ _React$useState4 = slicedToArray_default()(_React$useState3, 2),
51230
+ imgCoverStyle = _React$useState4[0],
51231
+ setImgCoverStyle = _React$useState4[1];
51223
51232
  var elementRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
51224
51233
  var getUrl = function getUrl(url) {
51225
51234
  var auto = 'autoSSL' in props ? autoSSL : use_image_config.autoSSL;
@@ -51254,6 +51263,35 @@ var useImage = function useImage() {
51254
51263
  };
51255
51264
  img.src = getUrl(alt);
51256
51265
  };
51266
+ var handleCoverStyle = function handleCoverStyle(img) {
51267
+ var container = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
51268
+ if (!container) return;
51269
+
51270
+ // 根据容器的宽高获取宽高比
51271
+ var containerWidth = container.clientWidth;
51272
+ var containerHeight = container.clientHeight;
51273
+ var containerRatio = containerWidth / containerHeight;
51274
+
51275
+ // 根据图片的自然尺寸获取宽高比
51276
+ var imageWidth = img.naturalWidth;
51277
+ var imageHeight = img.naturalHeight;
51278
+ var imageRatio = imageWidth / imageHeight;
51279
+
51280
+ // 判断宽高比,决定图片填充策略
51281
+ if (imageRatio > containerRatio) {
51282
+ // 图片更宽,宽度占满容器,高度自适应
51283
+ setImgCoverStyle({
51284
+ height: '100%',
51285
+ width: 'auto'
51286
+ });
51287
+ } else {
51288
+ // 图片更高,填满容器高度
51289
+ setImgCoverStyle({
51290
+ width: '100%',
51291
+ height: 'auto'
51292
+ });
51293
+ }
51294
+ };
51257
51295
  var markToRender = function markToRender() {
51258
51296
  if (!src) {
51259
51297
  handleAlt();
@@ -51261,7 +51299,10 @@ var useImage = function useImage() {
51261
51299
  }
51262
51300
  var img = new window.Image();
51263
51301
  img.onload = function () {
51264
- return setStatus(SRC);
51302
+ setStatus(SRC);
51303
+ if (props.fit === 'fill') {
51304
+ handleCoverStyle(img);
51305
+ }
51265
51306
  };
51266
51307
  img.onerror = function (e) {
51267
51308
  return handleError(SRC, e);
@@ -51290,7 +51331,9 @@ var useImage = function useImage() {
51290
51331
  alt: alt,
51291
51332
  draggable: !noImgDrag
51292
51333
  });
51293
- return objectSpread2_default()({}, mergedEventHandlers);
51334
+ return objectSpread2_default()({
51335
+ style: imgCoverStyle
51336
+ }, mergedEventHandlers);
51294
51337
  };
51295
51338
  var getImageDivProps = function getImageDivProps() {
51296
51339
  var externalProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -52058,7 +52101,8 @@ var Image = function Image(props) {
52058
52101
  href: href,
52059
52102
  lazy: lazy,
52060
52103
  autoSSL: autoSSL,
52061
- noImgDrag: noImgDrag
52104
+ noImgDrag: noImgDrag,
52105
+ fit: fit
52062
52106
  }, rest)),
52063
52107
  status = _useImage.status,
52064
52108
  getRootProps = _useImage.getRootProps,
@@ -52137,7 +52181,7 @@ var Image = function Image(props) {
52137
52181
 
52138
52182
  // 渲染 img / div 类型的内部标签
52139
52183
  var renderInner = function renderInner(src) {
52140
- return fit === 'fill' || fit === 'fit' ? renderDivInnerEl(src) : renderImgeInnerEl(src);
52184
+ return fit === 'fit' ? renderDivInnerEl(src) : renderImgeInnerEl(src);
52141
52185
  };
52142
52186
 
52143
52187
  // 默认占位图
@@ -69984,7 +70028,7 @@ var upload_interface = __webpack_require__(8821);
69984
70028
 
69985
70029
 
69986
70030
  /* harmony default export */ var src_0 = ({
69987
- version: '3.6.5-beta.1'
70031
+ version: '3.6.5-beta.2'
69988
70032
  });
69989
70033
  }();
69990
70034
  /******/ return __webpack_exports__;