@fruits-chain/react-native-xiaoshu
Version:
🌈 React Native UI library
51 lines (48 loc) • 1.25 kB
JavaScript
import React, { useEffect, memo } from 'react';
import { callInterceptor } from "../helpers/index.js";
import { usePersistFn } from "../hooks/index.js";
import useState from "../hooks/useStateUpdate.js";
import Selector from "./selector.js";
/**
* Selector 函数使用时对应需要的组件
*/
import { jsx as _jsx } from "react/jsx-runtime";
const SelectorMethod = ({
onChange,
onClose,
beforeChange,
...restProps
}) => {
const [visible, setVisible] = useState(false);
const onChangePersistFn = usePersistFn((v, o) => {
callInterceptor(beforeChange, {
args: [v, o],
done: () => {
onChange?.(v, o);
setVisible(false);
}
});
});
const onClosePersistFn = usePersistFn(() => {
onClose?.();
setVisible(false);
});
const onRequestClose = usePersistFn(() => {
onClosePersistFn();
return true;
});
// 节点加载好后显示
useEffect(() => {
setVisible(true);
}, []);
return /*#__PURE__*/_jsx(Selector, {
...restProps,
visible: visible,
onChange: onChangePersistFn,
onClose: onClosePersistFn,
onRequestClose: onRequestClose
});
};
export default /*#__PURE__*/memo(SelectorMethod);
//# sourceMappingURL=selector-method.js.map
;