@antdp/antdp-ui
Version:
基于antd封装的组件
75 lines • 1.71 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import React from 'react';
import { HideContext } from './context';
import { jsx as _jsx } from "react/jsx-runtime";
class Hide extends React.Component {
constructor(props) {
super(props);
this.mounted = false;
this.cancelRegisterFunc = () => {};
this.getNamePath = () => {
var {
name
} = this.props;
if (!Array.isArray(name)) {
return [name];
}
return name;
};
// 更新组件
this.refresh = () => {
if (this.mounted) {
this.forceUpdate();
}
};
this.getValue = () => {
var {
hideContent
} = this.props;
var {
getValue
} = hideContent.getItemStore();
return getValue(this.getNamePath());
};
if (props.hideContent) {
var {
hideContent
} = props;
var {
init
} = hideContent.getItemStore();
init(this);
}
}
componentDidMount() {
var {
hideContent
} = this.props;
// Register on init
if (hideContent) {
var {
register
} = hideContent.getItemStore();
this.cancelRegisterFunc = register(this);
}
this.mounted = true;
}
componentWillUnmount() {
this.cancelRegisterFunc();
this.mounted = false;
}
render() {
var {
children
} = this.props;
// 默认 false 展示
// 只是判断是否进行显示和隐藏
return !this.getValue() ? children : /*#__PURE__*/_jsx(React.Fragment, {});
}
}
export default props => {
var hideContent = React.useContext(HideContext);
return /*#__PURE__*/_jsx(Hide, _extends({}, props, {
hideContent: hideContent
}));
};