From d8649ac539100f7de6e62281ef454a507c409295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=8A=B2=E9=B9=8F?= Date: Thu, 30 Apr 2020 14:53:09 +0800 Subject: [PATCH] js: add navbar set center api --- doric-demo/src/NavbarDemo.ts | 24 ++++++++++++++++++++++++ doric-js/bundle/doric-lib.es5.js | 12 ++++++++++-- doric-js/bundle/doric-lib.js | 12 ++++++++++-- doric-js/bundle/doric-sandbox.es5.js | 18 ++++++------------ doric-js/bundle/doric-vm.js | 12 ++++++++++-- doric-js/index.d.ts | 1 + doric-js/lib/src/native/navbar.d.ts | 1 + doric-js/lib/src/native/navbar.js | 9 ++++++++- doric-js/lib/src/widget/list.js | 3 ++- doric-js/src/native/navbar.ts | 9 ++++++++- 10 files changed, 80 insertions(+), 21 deletions(-) diff --git a/doric-demo/src/NavbarDemo.ts b/doric-demo/src/NavbarDemo.ts index 7e08c5a0..33d3db55 100644 --- a/doric-demo/src/NavbarDemo.ts +++ b/doric-demo/src/NavbarDemo.ts @@ -118,6 +118,30 @@ class NavbarDemo extends Panel { }) } }), + label('setCenter').apply({ + width: 200, + height: 50, + backgroundColor: colors[0], + textSize: 30, + textColor: Color.WHITE, + layoutConfig: layoutConfig().just(), + onClick: () => { + navbar(context).setCenter(hlayout([ + text({ + width: 70, + height: 44, + textColor: Color.BLACK, + layoutConfig: layoutConfig().just().configAlignment(Gravity.Center), + text: "Center", + }), + ]).apply({ + backgroundColor: Color.RED + })) + .catch(e => { + modal(context).alert(e) + }) + } + }), label('Pop').apply({ width: 200, height: 50, diff --git a/doric-js/bundle/doric-lib.es5.js b/doric-js/bundle/doric-lib.es5.js index ea4f9b13..d9b6fdf7 100644 --- a/doric-js/bundle/doric-lib.es5.js +++ b/doric-js/bundle/doric-lib.es5.js @@ -1914,7 +1914,8 @@ var List = /** @class */ (function (_super) { } }; List.prototype.scrollToItem = function (context, index, config) { - var animated = config === null || config === void 0 ? void 0 : config.animated; + var _a; + var animated = (_a = config) === null || _a === void 0 ? void 0 : _a.animated; return this.nativeChannel(context, 'scrollToItem')({ index: index, animated: animated, }); }; List.prototype.reset = function () { @@ -2844,7 +2845,14 @@ function navbar(context) { panel.addHeadView("navbar_right", view); } return context.callNative('navbar', 'setRight', view.toModel()); - } + }, + setCenter: function (view) { + if (panel) { + panel.clearHeadViews("navbar_center"); + panel.addHeadView("navbar_center", view); + } + return context.callNative('navbar', 'setCenter', view.toModel()); + }, }; } diff --git a/doric-js/bundle/doric-lib.js b/doric-js/bundle/doric-lib.js index d2361e65..f5649fef 100644 --- a/doric-js/bundle/doric-lib.js +++ b/doric-js/bundle/doric-lib.js @@ -1420,7 +1420,8 @@ class List extends Superview { } } scrollToItem(context, index, config) { - const animated = config === null || config === void 0 ? void 0 : config.animated; + var _a; + const animated = (_a = config) === null || _a === void 0 ? void 0 : _a.animated; return this.nativeChannel(context, 'scrollToItem')({ index, animated, }); } reset() { @@ -2169,7 +2170,14 @@ function navbar(context) { panel.addHeadView("navbar_right", view); } return context.callNative('navbar', 'setRight', view.toModel()); - } + }, + setCenter: (view) => { + if (panel) { + panel.clearHeadViews("navbar_center"); + panel.addHeadView("navbar_center", view); + } + return context.callNative('navbar', 'setCenter', view.toModel()); + }, }; } diff --git a/doric-js/bundle/doric-sandbox.es5.js b/doric-js/bundle/doric-sandbox.es5.js index 66ad4758..7dbc0c03 100644 --- a/doric-js/bundle/doric-sandbox.es5.js +++ b/doric-js/bundle/doric-sandbox.es5.js @@ -1705,7 +1705,7 @@ var doric = (function (exports) { (module.exports = function (key, value) { return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); })('versions', []).push({ - version: '3.6.5', + version: '3.6.4', mode: 'global', copyright: '© 2020 Denis Pushkarev (zloirock.ru)' }); @@ -6489,13 +6489,7 @@ var doric = (function (exports) { defer = functionBindContext(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if ( - global_1.addEventListener && - typeof postMessage == 'function' && - !global_1.importScripts && - !fails(post) && - location.protocol !== 'file:' - ) { + } else if (global_1.addEventListener && typeof postMessage == 'function' && !global_1.importScripts && !fails(post)) { defer = post; global_1.addEventListener('message', listener, false); // IE8- @@ -9867,7 +9861,7 @@ var doric = (function (exports) { var INVALID_PORT = 'Invalid port'; var ALPHA = /[A-Za-z]/; - var ALPHANUMERIC = /[\d+-.A-Za-z]/; + var ALPHANUMERIC = /[\d+\-.A-Za-z]/; var DIGIT = /\d/; var HEX_START = /^(0x|0X)/; var OCT = /^[0-7]+$/; @@ -11678,8 +11672,8 @@ var doric = (function (exports) { if (cleanup != null) { subscriptionState.cleanup = typeof cleanup.unsubscribe === 'function' ? function () { subscription.unsubscribe(); } : aFunction$1(cleanup); } - } catch (error$1) { - subscriptionObserver.error(error$1); + } catch (error) { + subscriptionObserver.error(error); return; } if (subscriptionClosed(subscriptionState)) { cleanupSubscription(subscriptionState); } }; @@ -13179,7 +13173,7 @@ var doric = (function (exports) { // some Chrome versions have non-configurable methods on DOMTokenList if (CollectionPrototype$1[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) { try { createNonEnumerableProperty(CollectionPrototype$1, METHOD_NAME, es_array_iterator[METHOD_NAME]); - } catch (error$1) { + } catch (error) { CollectionPrototype$1[METHOD_NAME] = es_array_iterator[METHOD_NAME]; } } } } diff --git a/doric-js/bundle/doric-vm.js b/doric-js/bundle/doric-vm.js index 388e8fe6..bb501c0c 100644 --- a/doric-js/bundle/doric-vm.js +++ b/doric-js/bundle/doric-vm.js @@ -2879,7 +2879,8 @@ class List extends Superview { } } scrollToItem(context, index, config) { - const animated = config === null || config === void 0 ? void 0 : config.animated; + var _a; + const animated = (_a = config) === null || _a === void 0 ? void 0 : _a.animated; return this.nativeChannel(context, 'scrollToItem')({ index, animated, }); } reset() { @@ -3628,7 +3629,14 @@ function navbar(context) { panel.addHeadView("navbar_right", view); } return context.callNative('navbar', 'setRight', view.toModel()); - } + }, + setCenter: (view) => { + if (panel) { + panel.clearHeadViews("navbar_center"); + panel.addHeadView("navbar_center", view); + } + return context.callNative('navbar', 'setCenter', view.toModel()); + }, }; } diff --git a/doric-js/index.d.ts b/doric-js/index.d.ts index cedcb5d8..465defd0 100644 --- a/doric-js/index.d.ts +++ b/doric-js/index.d.ts @@ -765,6 +765,7 @@ declare module 'doric/lib/src/native/navbar' { setBgColor: (color: Color) => Promise; setLeft: (view: View) => Promise; setRight: (view: View) => Promise; + setCenter: (view: View) => Promise; }; } diff --git a/doric-js/lib/src/native/navbar.d.ts b/doric-js/lib/src/native/navbar.d.ts index 7f7b9f27..d43ae40a 100644 --- a/doric-js/lib/src/native/navbar.d.ts +++ b/doric-js/lib/src/native/navbar.d.ts @@ -8,4 +8,5 @@ export declare function navbar(context: BridgeContext): { setBgColor: (color: Color) => Promise; setLeft: (view: View) => Promise; setRight: (view: View) => Promise; + setCenter: (view: View) => Promise; }; diff --git a/doric-js/lib/src/native/navbar.js b/doric-js/lib/src/native/navbar.js index fa098305..e39bef1f 100644 --- a/doric-js/lib/src/native/navbar.js +++ b/doric-js/lib/src/native/navbar.js @@ -31,6 +31,13 @@ export function navbar(context) { panel.addHeadView("navbar_right", view); } return context.callNative('navbar', 'setRight', view.toModel()); - } + }, + setCenter: (view) => { + if (panel) { + panel.clearHeadViews("navbar_center"); + panel.addHeadView("navbar_center", view); + } + return context.callNative('navbar', 'setCenter', view.toModel()); + }, }; } diff --git a/doric-js/lib/src/widget/list.js b/doric-js/lib/src/widget/list.js index 3865a2ad..ce16f632 100644 --- a/doric-js/lib/src/widget/list.js +++ b/doric-js/lib/src/widget/list.js @@ -48,7 +48,8 @@ export class List extends Superview { } } scrollToItem(context, index, config) { - const animated = config === null || config === void 0 ? void 0 : config.animated; + var _a; + const animated = (_a = config) === null || _a === void 0 ? void 0 : _a.animated; return this.nativeChannel(context, 'scrollToItem')({ index, animated, }); } reset() { diff --git a/doric-js/src/native/navbar.ts b/doric-js/src/native/navbar.ts index 8a572fbf..8b70779f 100644 --- a/doric-js/src/native/navbar.ts +++ b/doric-js/src/native/navbar.ts @@ -51,6 +51,13 @@ export function navbar(context: BridgeContext) { panel.addHeadView("navbar_right", view) } return context.callNative('navbar', 'setRight', view.toModel()) - } + }, + setCenter: (view: View) => { + if (panel) { + panel.clearHeadViews("navbar_center") + panel.addHeadView("navbar_center", view) + } + return context.callNative('navbar', 'setCenter', view.toModel()) + }, } } \ No newline at end of file