UNPKG

@nghinv/react-native-app-tour

Version:
131 lines (109 loc) 4.3 kB
"use strict"; 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