gui-one-nutui-react-taro
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
69 lines (68 loc) • 3.21 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
import React__default, { useState, useEffect } from 'react';
import { c as cn } from './bem-893ad28d.js';
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
var defaultProps = {
className: '',
currentKey: 0,
currentTime: [],
times: [],
select: function select() {
return null;
}
};
var TimeDetail = function TimeDetail(props) {
useConfig();
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
children = _defaultProps$props.children,
times = _defaultProps$props.times,
className = _defaultProps$props.className,
currentKey = _defaultProps$props.currentKey,
currentTime = _defaultProps$props.currentTime,
select = _defaultProps$props.select;
var b = cn('timedetail');
var _useState = useState([]),
_useState2 = _slicedToArray(_useState, 2),
renderData = _useState2[0],
setRenderData = _useState2[1];
useEffect(function () {
var currentData = times.find(function (timesItem) {
return String(timesItem.key) === String(currentKey);
});
var renderData = currentData ? currentData.list : [];
// 根据选中的日期回显当前日期可配送的时间
setRenderData(renderData);
}, [times, currentKey]);
// 选中时间的回调
var handleTime = function handleTime(time) {
select(time);
};
// 选中的配送时间增加 active 类名
var getDetailClass = function getDetailClass(item) {
var initClass = 'nut-timedetail__item';
var curTimeData = currentTime.find(function (item) {
return String(item.key) === String(currentKey);
});
if (curTimeData && curTimeData.list && curTimeData.list.includes(item)) {
initClass += ' nut-timedetail__item-active';
}
return initClass;
};
return React__default.createElement("div", {
className: "".concat(b(), " ").concat(className || '')
}, renderData.map(function (item, index) {
return React__default.createElement("span", {
className: getDetailClass(item),
key: item,
onClick: function onClick() {
return handleTime(item);
}
}, item);
}));
};
TimeDetail.defaultProps = defaultProps;
TimeDetail.displayName = 'NutTimeDetail';
export { TimeDetail as T };