@react-native-aria/interactions
Version:
31 lines (30 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useBackHandler = useBackHandler;
var _react = require("react");
var _reactNative = require("react-native");
function useBackHandler({
enabled,
callback
}) {
const backHandlerRef = (0, _react.useRef)(null);
(0, _react.useEffect)(() => {
const backHandler = () => {
callback();
return true;
};
if (enabled) {
backHandlerRef.current = _reactNative.BackHandler.addEventListener('hardwareBackPress', backHandler);
} else {
var _backHandlerRef$curre;
(_backHandlerRef$curre = backHandlerRef.current) === null || _backHandlerRef$curre === void 0 || _backHandlerRef$curre.remove();
}
return () => {
var _backHandlerRef$curre2;
return (_backHandlerRef$curre2 = backHandlerRef.current) === null || _backHandlerRef$curre2 === void 0 ? void 0 : _backHandlerRef$curre2.remove();
};
}, [enabled, callback]);
}
//# sourceMappingURL=useBackHandler.js.map