From 2f595853a13cb996d9842f727153872f4957dd6a Mon Sep 17 00:00:00 2001 From: "Xc@centOs" Date: Tue, 22 Nov 2022 11:42:59 +0800 Subject: [PATCH] 2.0.1 --- lib/page.mp.js | 7 ++++++- lib/page.web.js | 13 ++++++++++--- lib/platforms/web/router/withRouter.d.ts | 2 +- lib/types/Page.d.ts | 5 ++++- package.json | 2 +- src/initialize-dev.ts | 4 ++-- src/initialize-prod.ts | 4 ++-- src/page.mp.ts | 11 ++++++++--- src/types/Page.ts | 1 + 9 files changed, 35 insertions(+), 14 deletions(-) diff --git a/lib/page.mp.js b/lib/page.mp.js index 45e379ea..a2821054 100644 --- a/lib/page.mp.js +++ b/lib/page.mp.js @@ -20,6 +20,11 @@ var OakProperties = { }; var oakBehavior = Behavior({ methods: { + setDisablePulldownRefresh: function (able) { + this.setState({ + oakDisablePulldownRefresh: able, + }); + }, t: function (key, params) { // common: { // GREETING: 'Hello {{name}}, nice to see you.', @@ -138,7 +143,7 @@ var oakBehavior = Behavior({ return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: - if (!(!this.state.oakLoading && this.iAmThePage())) return [3 /*break*/, 2]; + if (!(!this.state.oakLoading && this.iAmThePage() && !this.state.oakDisablePulldownRefresh && !this.props.oakDisablePulldownRefresh)) return [3 /*break*/, 2]; return [4 /*yield*/, this.refresh()]; case 1: _a.sent(); diff --git a/lib/page.web.js b/lib/page.web.js index f75bc8c4..a2f2884f 100644 --- a/lib/page.web.js +++ b/lib/page.web.js @@ -14,6 +14,11 @@ var OakComponentBase = /** @class */ (function (_super) { function OakComponentBase() { return _super !== null && _super.apply(this, arguments) || this; } + OakComponentBase.prototype.setDisablePulldownRefresh = function (able) { + this.setState({ + oakDisablePulldownRefresh: able, + }); + }; OakComponentBase.prototype.onPathSet = function () { return page_common_1.onPathSet.call(this, this.oakOption); }; @@ -394,6 +399,7 @@ function createComponent(option, features) { _this.checkReachBottom(); }; var methodProps = { + setDisablePulldownRefresh: function (able) { return _this.setDisablePulldownRefresh(able); }, t: function (key, params) { return _this.t(key, params); }, execute: function (action) { return _this.execute(action); @@ -524,7 +530,9 @@ function createComponent(option, features) { return this.props.routeMatch; }; OakComponentWrapper.prototype.supportPullDownRefresh = function () { - return this.props.width === 'xs' && this.iAmThePage(); + var _a = this.props.oakDisablePulldownRefresh, oakDisablePulldownRefresh = _a === void 0 ? false : _a; + var disable2 = this.state.oakDisablePulldownRefresh; + return this.props.width === 'xs' && this.iAmThePage() && !oakDisablePulldownRefresh && !disable2; }; OakComponentWrapper.prototype.registerPageScroll = function () { window.addEventListener('scroll', this.scrollEvent); @@ -590,9 +598,8 @@ function createComponent(option, features) { OakComponentWrapper.prototype.render = function () { var _this = this; var oakPullDownRefreshLoading = this.state.oakPullDownRefreshLoading; - var _a = this.props.oakDisablePulldownRefresh, oakDisablePulldownRefresh = _a === void 0 ? false : _a; var Render = getRender.call(this); - if (this.supportPullDownRefresh() && !oakDisablePulldownRefresh) { + if (this.supportPullDownRefresh()) { var Child = react_1.default.cloneElement((0, jsx_runtime_1.jsx)(web_1.PullToRefresh, { onRefresh: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { diff --git a/lib/platforms/web/router/withRouter.d.ts b/lib/platforms/web/router/withRouter.d.ts index 5ac0c875..d64ff632 100644 --- a/lib/platforms/web/router/withRouter.d.ts +++ b/lib/platforms/web/router/withRouter.d.ts @@ -8,6 +8,6 @@ import React from 'react'; declare const withRouter: (Component: React.ComponentType, { path, properties }: { path?: string | undefined; - properties?: WechatMiniprogram.Component.PropertyOption | undefined; + properties?: Record | undefined; }) => React.ForwardRefExoticComponent>; export default withRouter; diff --git a/lib/types/Page.d.ts b/lib/types/Page.d.ts index 1138abb1..03ea5923 100644 --- a/lib/types/Page.d.ts +++ b/lib/types/Page.d.ts @@ -118,6 +118,7 @@ export declare type OakNavigateToParameters = { + setDisablePulldownRefresh: (able: boolean) => void; sub: (type: string, callback: Function) => void; unsub: (type: string, callback: Function) => void; pub: (type: string, options?: any) => void; @@ -182,6 +183,7 @@ export declare type OakListComponentMethods, beforeExecute?: () => Promise, afterExecute?: () => Promise) => void; removeItem: (id: string, beforeExecute?: () => Promise, afterExecute?: () => Promise) => void; updateItem: (data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action'], beforeExecute?: () => Promise, afterExecute?: () => Promise) => void; + recoverItem: (id: string) => void; }; declare type ComponentOnPropsChangeOption = { path?: string; @@ -206,9 +208,10 @@ export declare type OakComponentData, FrontCxt extends SyncContext, AD extends Record>, FD extends Record> = (options: OakComponentOption) => React.ComponentType; -export declare type WebComponentCommonMethodNames = 'setNotification' | 'setMessage' | 'navigateTo' | 'navigateBack' | 'redirectTo' | 'clean' | 't' | 'execute' | 'refresh'; +export declare type WebComponentCommonMethodNames = 'setNotification' | 'setMessage' | 'navigateTo' | 'navigateBack' | 'redirectTo' | 'clean' | 't' | 'execute' | 'refresh' | 'setDisablePulldownRefresh'; export declare type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters' | 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage' | 'addItem' | 'removeItem' | 'updateItem'; export declare type WebComponentSingleMethodNames = 'update' | 'remove'; export declare type WebComponentProps = { diff --git a/package.json b/package.json index 2550413a..f4578e28 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "oak-frontend-base", - "version": "1.0.15", + "version": "2.0.1", "description": "oak框架中前端与业务逻辑无关的平台部分", "author": { "name": "XuChang" diff --git a/src/initialize-dev.ts b/src/initialize-dev.ts index 9a42e285..e58ab356 100644 --- a/src/initialize-dev.ts +++ b/src/initialize-dev.ts @@ -70,7 +70,7 @@ export function initialize< ); } const aspectDict2 = Object.assign({}, aspectDict, commonAspectDict); - const checkers2 = (checkers || []).concat(createDynamicCheckers(storageSchema)); + const checkers2 = (checkers || []).concat(createDynamicCheckers(storageSchema)); const triggers2 = createDynamicTriggers(storageSchema).concat(triggers || []); const debugStore = createDebugStore( storageSchema, @@ -124,7 +124,7 @@ export function initialize< } Object.assign(features, basicFeatures, userDefinedfeatures); - checkers2.forEach((checker) => cacheStore.registerChecker(checker)); + checkers2.forEach((checker) => cacheStore.registerChecker(checker as Checker>)); if (actionDict) { const { checkers: adCheckers } = analyzeActionDefDict( storageSchema, diff --git a/src/initialize-prod.ts b/src/initialize-prod.ts index 20945da5..5be47ba8 100644 --- a/src/initialize-prod.ts +++ b/src/initialize-prod.ts @@ -51,7 +51,7 @@ export function initialize< checkers?: Array>, actionDict?: ActionDictOfEntityDict ) { - const checkers2 = (checkers || []).concat(createDynamicCheckers(storageSchema)); + const checkers2 = (checkers || []).concat(createDynamicCheckers(storageSchema)); const features = {} as FD & BasicFeatures>; @@ -83,7 +83,7 @@ export function initialize< } Object.assign(features, basicFeatures, userDefinedfeatures); - checkers2.forEach((checker) => cacheStore.registerChecker(checker)); + checkers2.forEach((checker) => cacheStore.registerChecker(checker as Checker>)); if (actionDict) { const { checkers: adCheckers } = analyzeActionDefDict( storageSchema, diff --git a/src/page.mp.ts b/src/page.mp.ts index 39ee365d..c102511f 100644 --- a/src/page.mp.ts +++ b/src/page.mp.ts @@ -47,7 +47,7 @@ const oakBehavior = Behavior< WechatMiniprogram.Component.PropertyOption, OakCommonComponentMethods & OakListComponentMethods & OakSingleComponentMethods & { iAmThePage: () => boolean; - setState: (data: Record, callback: () => void) => void; + setState: (data: Record, callback?: () => void) => void; onLoad: (query: Record) => Promise; onPullDownRefresh: () => Promise; onReachBottom: () => Promise; @@ -83,6 +83,11 @@ const oakBehavior = Behavior< > }>({ methods: { + setDisablePulldownRefresh(able) { + this.setState({ + oakDisablePulldownRefresh: able, + }); + }, t(key: string, params?: object) { // common: { // GREETING: 'Hello {{name}}, nice to see you.', @@ -123,7 +128,7 @@ const oakBehavior = Behavior< return false; }, - setState(data: Record, callback: () => void) { + setState(data: Record, callback?: () => void) { this.setData(data, () => { this.state = this.data; callback && callback.call(this); @@ -194,7 +199,7 @@ const oakBehavior = Behavior< }, async onPullDownRefresh() { - if (!this.state.oakLoading && this.iAmThePage()) { + if (!this.state.oakLoading && this.iAmThePage() && !this.state.oakDisablePulldownRefresh && !this.props.oakDisablePulldownRefresh) { await this.refresh(); } await wx.stopPullDownRefresh(); diff --git a/src/types/Page.ts b/src/types/Page.ts index 97e386c7..79b4e4ef 100644 --- a/src/types/Page.ts +++ b/src/types/Page.ts @@ -292,6 +292,7 @@ export type OakListComponentMethods, beforeExecute?: () => Promise, afterExecute?: () => Promise) => void; removeItem: (id: string, beforeExecute?: () => Promise, afterExecute?: () => Promise) => void; updateItem: (data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action'], beforeExecute?: () => Promise, afterExecute?: () => Promise) => void; + recoverItem: (id: string) => void; }; type ComponentOnPropsChangeOption = {