From 7da5aeb56b2a1053d36dbae74b24ee78757c7a95 Mon Sep 17 00:00:00 2001 From: vakrilov Date: Tue, 27 Nov 2018 00:29:43 +0200 Subject: [PATCH 1/2] feat(modals): fire close callback after close in IOS --- .../app/ui-tests-app/modal-view/login-page.ts | 37 +++++++++---------- .../ui-tests-app/modal-view/login-page.xml | 11 ++++-- .../app/ui-tests-app/modal-view/modal-view.ts | 32 +++++++++++++++- .../ui-tests-app/modal-view/modal-view.xml | 4 ++ tns-core-modules/ui/core/view/view-common.ts | 34 +++++++++-------- tns-core-modules/ui/core/view/view.android.ts | 4 +- tns-core-modules/ui/core/view/view.ios.ts | 17 ++++++--- 7 files changed, 90 insertions(+), 49 deletions(-) diff --git a/apps/app/ui-tests-app/modal-view/login-page.ts b/apps/app/ui-tests-app/modal-view/login-page.ts index 2c4d5917f6..86431d84bd 100644 --- a/apps/app/ui-tests-app/modal-view/login-page.ts +++ b/apps/app/ui-tests-app/modal-view/login-page.ts @@ -1,32 +1,29 @@ -import * as pages from "tns-core-modules/ui/page"; -import * as textField from "tns-core-modules/ui/text-field"; -import * as observable from "tns-core-modules/data/observable"; +import { Page, ShownModallyData } from "tns-core-modules/ui/page"; +import { EventData, fromObject } from "tns-core-modules/data/observable"; -var context: any; -var closeCallback: Function; +export function onShowingModally(args: ShownModallyData) { + console.log("login-page.onShowingModally, context: " + args.context); + const page = args.object; -var page: pages.Page; -var usernameTextField: textField.TextField; -var passwordTextField: textField.TextField; + page.bindingContext = fromObject({ + username: "username", + password: "password", + context: args.context, + onLoginButtonTap: function() { + console.log("login-page.onLoginButtonTap"); + args.closeCallback(this.username, this.password); + } + }) +} -export function onShownModally(args: pages.ShownModallyData) { +export function onShownModally(args: ShownModallyData) { console.log("login-page.onShownModally, context: " + args.context); - context = args.context; - closeCallback = args.closeCallback; } -export function onLoaded(args: observable.EventData) { +export function onLoaded(args: EventData) { console.log("login-page.onLoaded"); - page = args.object; - usernameTextField = page.getViewById("username"); - passwordTextField = page.getViewById("password"); } export function onUnloaded() { console.log("login-page.onUnloaded"); } - -export function onLoginButtonTap() { - console.log("login-page.onLoginButtonTap"); - closeCallback(usernameTextField.text, passwordTextField.text); -} diff --git a/apps/app/ui-tests-app/modal-view/login-page.xml b/apps/app/ui-tests-app/modal-view/login-page.xml index f2fd8c601e..87c8487f32 100644 --- a/apps/app/ui-tests-app/modal-view/login-page.xml +++ b/apps/app/ui-tests-app/modal-view/login-page.xml @@ -1,8 +1,11 @@ - - - -