@nghinv/react-native-app-tour
Version:
React Native app tour Library
131 lines (109 loc) • 4.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useAppTour = useAppTour;
exports.useEvent = useEvent;
exports.setVector = exports.setVectorLayout = exports.useVector = exports.useVectorLayout = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactNativeReanimated = require("react-native-reanimated");
var _reactNativeEventListeners = require("react-native-event-listeners");
var _AppTourContext = require("./AppTourContext");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
/**
* Created by nghinv on Wed Jun 23 2021
* Copyright (c) 2021 nghinv@lumi.biz
*/
function useAppTour() {
const {
nodes,
setSceneIndex,
options
} = _react.default.useContext(_AppTourContext.AppTourContext);
const addNode = (0, _react.useCallback)(node => {
const nodesValue = nodes.value;
const findIndex = nodesValue.findIndex(n => n.id === node.id);
if (findIndex !== -1) {
nodesValue[findIndex] = node;
nodes.value = nodesValue;
} else {
nodesValue.push(node);
nodes.value = nodesValue;
}
}, [nodes]);
return {
addNode,
nodes,
setSceneIndex,
debug: options === null || options === void 0 ? void 0 : options.debug
};
}
function useEvent() {
const addEventListener = (0, _react.useCallback)((eventName, callback) => {
return _reactNativeEventListeners.EventRegister.addEventListener(eventName, callback);
}, []);
const removeEventListener = (0, _react.useCallback)(id => {
if (typeof id === 'string') {
return _reactNativeEventListeners.EventRegister.removeEventListener(id);
}
return false;
}, []);
const removeAllListeners = (0, _react.useCallback)(() => {
_reactNativeEventListeners.EventRegister.removeAllListeners();
}, []);
const emitEvent = (0, _react.useCallback)((eventName, data) => {
_reactNativeEventListeners.EventRegister.emit(eventName, data);
}, []);
return {
addEventListener,
removeEventListener,
removeAllListeners,
emitEvent
};
}
const useVectorLayout = (x = 0, y = 0, width = 0, height = 0) => {
const targetX = (0, _reactNativeReanimated.useSharedValue)(x);
const targetY = (0, _reactNativeReanimated.useSharedValue)(y);
const targetWidth = (0, _reactNativeReanimated.useSharedValue)(width);
const targetHeight = (0, _reactNativeReanimated.useSharedValue)(height);
return {
x: targetX,
y: targetY,
width: targetWidth,
height: targetHeight
};
};
exports.useVectorLayout = useVectorLayout;
const useVector = (x = 0, y = 0) => {
const targetX = (0, _reactNativeReanimated.useSharedValue)(x);
const targetY = (0, _reactNativeReanimated.useSharedValue)(y);
return {
x: targetX,
y: targetY
};
};
exports.useVector = useVector;
const setVectorLayout = (target, {
x = 0,
y = 0,
width = 0,
height = 0
}) => {
'worklet';
target.x.value = x;
target.y.value = y;
target.width.value = width;
target.height.value = height;
};
exports.setVectorLayout = setVectorLayout;
const setVector = (target, {
x = 0,
y = 0
}) => {
'worklet';
target.x.value = x;
target.y.value = y;
};
exports.setVector = setVector;
//# sourceMappingURL=hook.js.map