@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
68 lines (64 loc) • 1.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Message;
var _react = require("react");
var _components = require("@tarojs/components");
var _jsxRuntime = require("react/jsx-runtime");
function Message(props) {
var status = props.status,
message = props.message,
_props$feedback = props.feedback,
feedback = _props$feedback === void 0 ? 'failed' : _props$feedback,
className = props.className;
var config = (0, _react.useMemo)(function () {
var mess = '';
var color = '#fff';
var ifShow = false;
// 优先处理特殊反馈模式
if (feedback === 'hidden') {
return {
color: color,
mess: mess,
ifShow: false
};
}
// 通用条件判断
switch (status) {
case 'pendding':
mess = '';
break;
case 'reject':
if (['failed', 'all'].includes(feedback)) {
mess = message || '';
color = 'red';
ifShow = true;
}
break;
case 'resolve':
if (['success', 'all'].includes(feedback)) {
mess = '校验通过';
color = 'green';
ifShow = true;
}
break;
}
// 处理'all'模式的覆盖逻辑
if (feedback === 'all') {
ifShow = true;
}
return {
color: color,
mess: mess,
ifShow: ifShow
};
}, [status, message, feedback]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
className: "vant-form-message ".concat(config.ifShow ? "vant-form-message-show" : '', " ").concat(className),
style: {
color: config.color
},
children: config.mess
});
}
;