UNPKG

@tarojs/components

Version:
72 lines (68 loc) 1.87 kB
import { r as registerInstance, c as createEvent, h, H as Host } from './index-ab3c86da.js'; import Taro from '@tarojs/taro'; import { c as classnames } from './index-c3e4004b.js'; const indexCss = ".navigator-hover{background:#efefef}"; const Navigator = class { constructor(hostRef) { registerInstance(this, hostRef); this.onSuccess = createEvent(this, "cuccess", 7); this.onFail = createEvent(this, "fail", 7); this.onComplete = createEvent(this, "complete", 7); this.hoverClass = undefined; this.url = undefined; this.openType = 'navigate'; this.isHover = false; this.delta = 0; } onClick() { const { openType, onSuccess, onFail, onComplete } = this; let promise = Promise.resolve(); switch (openType) { case 'navigate': promise = Taro.navigateTo({ url: this.url }); break; case 'redirect': promise = Taro.redirectTo({ url: this.url }); break; case 'switchTab': promise = Taro.switchTab({ url: this.url }); break; case 'reLaunch': promise = Taro.reLaunch({ url: this.url }); break; case 'navigateBack': promise = Taro.navigateBack({ delta: this.delta }); break; case 'exit': promise = Promise.reject(new Error('navigator:fail 暂不支持"openType: exit"')); break; } if (promise) { promise.then(res => { onSuccess.emit(res); }).catch(res => { onFail.emit(res); }).finally(() => { onComplete.emit(); }); } } render() { const { isHover, hoverClass } = this; return (h(Host, { class: classnames({ [hoverClass]: isHover }) })); } }; Navigator.style = indexCss; export { Navigator as taro_navigator_core };