import React, { memo } from 'react';
import classNames from 'classnames';
import { IntersectionTrigger } from "../components/IntersectionObserver";
import { PREFIX } from "../index";
import PisellSalesProductCard from "../../pisellSalesProductCard";
/**
 * v2 卡片：复用 ProductCard 的结构能力（分类项 + IntersectionTrigger），
 * 商品项内部渲染 PisellSalesProductCard。
 */
var ProductCardV2 = /*#__PURE__*/memo(function (_ref) {
  var _ref2, _item$product_id2, _item$item_rule_limit, _item$item_rule_limit2, _item$item_rule_limit3, _item$item_rule_limit4, _item$item_rule_limit5, _item$item_rule_limit6;
  var item = _ref.item,
    index = _ref.index,
    context = _ref.context,
    className = _ref.className,
    value = _ref.value,
    _onChange = _ref.onChange,
    _ref$decorateConfig = _ref.decorateConfig,
    decorateConfig = _ref$decorateConfig === void 0 ? {} : _ref$decorateConfig,
    cartElementId = _ref.cartElementId;
  var __typename = item.__typename;
  if (__typename === 'category') {
    return /*#__PURE__*/React.createElement("div", {
      className: classNames("".concat(PREFIX, "__product-category"), className),
      "data-index": index,
      "data-item-index": index
    }, /*#__PURE__*/React.createElement("div", {
      className: "category-title"
    }, item.name));
  }
  var itemValue = function (_item$product_id) {
    var targetProductId = (_item$product_id = item === null || item === void 0 ? void 0 : item.product_id) !== null && _item$product_id !== void 0 ? _item$product_id : item === null || item === void 0 ? void 0 : item.id;
    var products = Array.isArray(value) ? value : [];
    return products.find(function (v) {
      var _v$product_id;
      return String((_v$product_id = v === null || v === void 0 ? void 0 : v.product_id) !== null && _v$product_id !== void 0 ? _v$product_id : '') === String(targetProductId !== null && targetProductId !== void 0 ? targetProductId : '');
    });
  }();
  var cardContent = /*#__PURE__*/React.createElement("div", {
    "data-product-id": String((_ref2 = (_item$product_id2 = item === null || item === void 0 ? void 0 : item.product_id) !== null && _item$product_id2 !== void 0 ? _item$product_id2 : item === null || item === void 0 ? void 0 : item.id) !== null && _ref2 !== void 0 ? _ref2 : '')
  }, /*#__PURE__*/React.createElement(PisellSalesProductCard, {
    product: item,
    stepperProps: {
      min: item === null || item === void 0 || (_item$item_rule_limit = item.item_rule_limit) === null || _item$item_rule_limit === void 0 ? void 0 : _item$item_rule_limit.min,
      max: item === null || item === void 0 || (_item$item_rule_limit2 = item.item_rule_limit) === null || _item$item_rule_limit2 === void 0 ? void 0 : _item$item_rule_limit2.remainingMax,
      limitMessage: {
        max: (_item$item_rule_limit3 = item === null || item === void 0 || (_item$item_rule_limit4 = item.item_rule_limit) === null || _item$item_rule_limit4 === void 0 ? void 0 : _item$item_rule_limit4.maxValidationMessage) !== null && _item$item_rule_limit3 !== void 0 ? _item$item_rule_limit3 : item === null || item === void 0 || (_item$item_rule_limit5 = item.item_rule_limit) === null || _item$item_rule_limit5 === void 0 ? void 0 : _item$item_rule_limit5.validationMessage,
        min: item === null || item === void 0 || (_item$item_rule_limit6 = item.item_rule_limit) === null || _item$item_rule_limit6 === void 0 ? void 0 : _item$item_rule_limit6.minValidationMessage
      }
    },
    value: itemValue,
    skuCardConfig: {
      image: {
        width: decorateConfig === null || decorateConfig === void 0 ? void 0 : decorateConfig.imgWidth,
        height: decorateConfig === null || decorateConfig === void 0 ? void 0 : decorateConfig.imgHeight
      }
    },
    cartElementId: cartElementId,
    onClick: function onClick(nextValue, meta) {
      // @ts-ignore
      _onChange === null || _onChange === void 0 || _onChange(nextValue, meta.intent, meta);
    },
    onChange: function onChange(nextValue, meta) {
      // @ts-ignore
      _onChange === null || _onChange === void 0 || _onChange(nextValue, meta.intent, meta);
    }
  }));
  if (context) {
    return /*#__PURE__*/React.createElement(IntersectionTrigger, {
      onShow: function onShow() {
        return context.onItemIntersectionIn(item);
      }
    }, cardContent);
  }
  return cardContent;
});
ProductCardV2.displayName = 'ProductCardV2';
export default ProductCardV2;