vantui-edit
Version:
一套适用于Taro3及React的vantui组件库
54 lines (49 loc) • 2.58 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
var _excluded = ["children", "style", "className", "active", "lazyRender", "lazyTimeout", "animated", "title"];
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 { useState, useEffect } from 'react';
import { View } from '@tarojs/components';
import * as utils from '../wxs/utils';
import { jsx as _jsx } from "react/jsx-runtime";
export function Tab(props) {
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
inited = _useState2[0],
setInited = _useState2[1];
var children = props.children,
style = props.style,
className = props.className,
active = props.active,
lazyRender = props.lazyRender,
lazyTimeout = props.lazyTimeout,
animated = props.animated,
title = props.title,
others = _objectWithoutProperties(props, _excluded);
useEffect(function () {
if (!lazyTimeout) {
setInited(function (pre) {
return pre || active;
});
} else {
setTimeout(function () {
setInited(function (pre) {
return pre || active;
});
}, lazyTimeout);
}
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[active]);
return /*#__PURE__*/_jsx(View, _objectSpread(_objectSpread({
className: ' ' + utils.bem('tab__pane', {
active: active,
inactive: !active
}) + " ".concat(className || ''),
style: utils.style([active || animated ? '' : 'display: none;', style])
}, others), {}, {
children: (inited || !lazyRender) && children
}));
}
export default Tab;