Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | import { AnyObject, Defined } from '../types' import { EventBus, EventBusBeforeOn, EventBusListener } from '../utils' import { patchMiniProgram } from './patchMiniProgram' export interface MiniProgramBusRouteChangePageInfo { url: string path: string query: AnyObject } export type MiniProgramBusRouteChangeAction = 'replace' | 'pop' | 'push' export interface MiniProgramBusRouteChangePayload { from: MiniProgramBusRouteChangePageInfo | undefined to: MiniProgramBusRouteChangePageInfo action: MiniProgramBusRouteChangeAction } export interface MiniProgramBusListeners { appLaunch: Defined<WechatMiniprogram.App.Options<{}>['onLaunch']> appShow: Defined<WechatMiniprogram.App.Options<{}>['onShow']> appHide: Defined<WechatMiniprogram.App.Options<{}>['onHide']> appError: Defined<WechatMiniprogram.App.Options<{}>['onError']> appThemeChange: Defined<WechatMiniprogram.App.Options<{}>['onThemeChange']> appUnhandledRejectionThrow: Defined< WechatMiniprogram.App.Options<{}>['onUnhandledRejection'] > pageNotFound: Defined<WechatMiniprogram.App.Options<{}>['onPageNotFound']> pageLoad: Defined<WechatMiniprogram.Page.Options<{}, {}>['onLoad']> pageShow: Defined<WechatMiniprogram.Page.Options<{}, {}>['onShow']> pageHide: Defined<WechatMiniprogram.Page.Options<{}, {}>['onHide']> pageReady: Defined<WechatMiniprogram.Page.Options<{}, {}>['onReady']> pageUnload: Defined<WechatMiniprogram.Page.Options<{}, {}>['onUnload']> pagePullDownRefresh: Defined< WechatMiniprogram.Page.Options<{}, {}>['onPullDownRefresh'] > pageReachBottom: Defined< WechatMiniprogram.Page.Options<{}, {}>['onReachBottom'] > pageShareAppMessage: Defined< WechatMiniprogram.Page.Options<{}, {}>['onShareAppMessage'] > pageShareTimeline: Defined< // @ts-ignore WechatMiniprogram.Page.Options<{}, {}>['onShareTimeline'] > pageAddToFavorites: Defined< WechatMiniprogram.Page.Options<{}, {}>['onAddToFavorites'] > // 影响性能,暂不支持 // pageScroll: Defined<WechatMiniprogram.Page.Options<{}, {}>['onPageScroll']> pageResize: Defined<WechatMiniprogram.Page.Options<{}, {}>['onResize']> pageTabItemTap: Defined< WechatMiniprogram.Page.Options<{}, {}>['onTabItemTap'] > currentPageShow: Defined<WechatMiniprogram.Page.Options<{}, {}>['onShow']> currentPageHide: Defined<WechatMiniprogram.Page.Options<{}, {}>['onHide']> currentPageReady: Defined<WechatMiniprogram.Page.Options<{}, {}>['onReady']> currentPageUnload: Defined<WechatMiniprogram.Page.Options<{}, {}>['onUnload']> currentPagePullDownRefresh: Defined< WechatMiniprogram.Page.Options<{}, {}>['onPullDownRefresh'] > currentPageReachBottom: Defined< WechatMiniprogram.Page.Options<{}, {}>['onReachBottom'] > currentPageShareAppMessage: Defined< WechatMiniprogram.Page.Options<{}, {}>['onShareAppMessage'] > currentPageShareTimeline: Defined< // @ts-ignore WechatMiniprogram.Page.Options<{}, {}>['onShareTimeline'] > currentPageAddToFavorites: Defined< WechatMiniprogram.Page.Options<{}, {}>['onAddToFavorites'] > // 影响性能,暂不支持 // currentPageScroll: Defined<WechatMiniprogram.Page.Options<{}, {}>['onPageScroll']> currentPageResize: Defined<WechatMiniprogram.Page.Options<{}, {}>['onResize']> currentPageTabItemTap: Defined< WechatMiniprogram.Page.Options<{}, {}>['onTabItemTap'] > routeChange: (payload: MiniProgramBusRouteChangePayload) => any } /** @private */ export const pageListenerToCurrentPageListener: Partial< Record<keyof MiniProgramBusListeners, keyof MiniProgramBusListeners> > = { pageShow: 'currentPageShow', pageHide: 'currentPageHide', pageReady: 'currentPageReady', pageUnload: 'currentPageUnload', pagePullDownRefresh: 'currentPagePullDownRefresh', pageReachBottom: 'currentPageReachBottom', pageShareAppMessage: 'currentPageShareAppMessage', pageShareTimeline: 'currentPageShareTimeline', pageAddToFavorites: 'currentPageAddToFavorites', pageResize: 'currentPageResize', pageTabItemTap: 'currentPageTabItemTap', } /** @private */ export const pageListeners = Object.keys( pageListenerToCurrentPageListener, ) as Array<keyof MiniProgramBusListeners> /** @private */ export const currentPageListeners = pageListeners.map( pageListener => pageListenerToCurrentPageListener[pageListener], ) as Array<keyof MiniProgramBusListeners> // @ts-ignore export const miniProgramBus = new EventBus<MiniProgramBusListeners>({ beforeOn: currentPageListeners.reduce< // @ts-ignore EventBusBeforeOn<MiniProgramBusListeners> >((res, currentPageListenerName) => { res[currentPageListenerName] = function (cb: EventBusListener) { cb.__EVENT_BUS_TAG__ = patchMiniProgram.__CURRENT_PAGE_ID__ return cb } return res }, {}), }) |