mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
fix(ios-dialogs): unable to show dialog from modal view without a page (#5881)
* fix(ios-dialogs): unable to show dialog from modal view * tests(modal-navigation): add test that opens dialog inside modal view
This commit is contained in:

committed by
GitHub

parent
6d978add18
commit
e59d1567a5
@ -20,6 +20,15 @@ export function onNavigatedFrom(args: NavigatedData) {
|
||||
console.log("home-page onNavigatedFrom");
|
||||
}
|
||||
|
||||
export function onModalNoPage(args: EventData) {
|
||||
const view = args.object as View;
|
||||
|
||||
view.showModal("modal-no-page/modal-no-page",
|
||||
"context",
|
||||
() => console.log("home-page modal frame closed"),
|
||||
false);
|
||||
}
|
||||
|
||||
export function onModalFrame(args: EventData) {
|
||||
const view = args.object as View;
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
</ActionBar>
|
||||
|
||||
<StackLayout>
|
||||
<Button text="Show Modal Without Page" tap="onModalNoPage" />
|
||||
<Button text="Show Modal Page With Frame" tap="onModalFrame" />
|
||||
<Button text="Show Modal Page" tap="onModalPage" />
|
||||
<Button text="Show Modal Layout" tap="onModalLayout" />
|
||||
|
@ -1,4 +1,5 @@
|
||||
export {
|
||||
onModalNoPage,
|
||||
onModalFrame,
|
||||
onModalPage,
|
||||
onModalLayout,
|
||||
|
@ -1,5 +1,6 @@
|
||||
<StackLayout>
|
||||
<Label text="Home" horizontalAlignment="center" />
|
||||
<Button text="Show Modal Without Page" tap="onModalNoPage" />
|
||||
<Button text="Show Modal Page With Frame" tap="onModalFrame" />
|
||||
<Button text="Show Modal Page" tap="onModalPage" />
|
||||
<Button text="Show Modal Layout" tap="onModalLayout" />
|
||||
|
28
e2e/modal-navigation/app/modal-no-page/modal-no-page.ts
Normal file
28
e2e/modal-navigation/app/modal-no-page/modal-no-page.ts
Normal file
@ -0,0 +1,28 @@
|
||||
import { StackLayout } from "tns-core-modules/ui/layouts/stack-layout";
|
||||
import { NavigatedData, Page } from "tns-core-modules/ui/page";
|
||||
import { View, EventData } from "tns-core-modules/ui/core/view";
|
||||
import { Frame, ShownModallyData } from "tns-core-modules/ui/frame";
|
||||
import { fromObject } from "tns-core-modules/data/observable";
|
||||
import { confirm } from "ui/dialogs";
|
||||
|
||||
export function onLoaded(args) {
|
||||
console.log("modal-no-page loaded");
|
||||
}
|
||||
|
||||
export function closeModal(args: EventData) {
|
||||
(args.object as View).closeModal();
|
||||
}
|
||||
|
||||
export function showDialog(args: EventData) {
|
||||
let options = {
|
||||
title: "Dialog",
|
||||
message: "Message",
|
||||
okButtonText: "Yes",
|
||||
cancelButtonText: "No"
|
||||
|
||||
}
|
||||
|
||||
confirm(options).then((result: boolean) => {
|
||||
console.log(result);
|
||||
})
|
||||
}
|
4
e2e/modal-navigation/app/modal-no-page/modal-no-page.xml
Normal file
4
e2e/modal-navigation/app/modal-no-page/modal-no-page.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<StackLayout backgroundColor="lightGreen" loaded="onLoaded">
|
||||
<Button text="Show Dialog" tap="showDialog"/>
|
||||
<Button text="Close Modal" tap="closeModal" />
|
||||
</StackLayout>
|
@ -3,6 +3,7 @@ import { NavigatedData, Page } from "tns-core-modules/ui/page";
|
||||
import { View, EventData } from "tns-core-modules/ui/core/view";
|
||||
import { Frame, ShownModallyData } from "tns-core-modules/ui/frame";
|
||||
import { fromObject } from "tns-core-modules/data/observable";
|
||||
import { confirm } from "ui/dialogs";
|
||||
|
||||
export function onShowingModally(args: ShownModallyData) {
|
||||
console.log("modal-page showingModally");
|
||||
@ -64,4 +65,18 @@ export function onNavigate(args: EventData) {
|
||||
const view = args.object as View;
|
||||
const page = view.page as Page;
|
||||
page.frame.navigate("modal-second/modal-second-page");
|
||||
}
|
||||
|
||||
export function showDialog(args: EventData) {
|
||||
let options = {
|
||||
title: "Dialog",
|
||||
message: "Message",
|
||||
okButtonText: "Yes",
|
||||
cancelButtonText: "No"
|
||||
|
||||
}
|
||||
|
||||
confirm(options).then((result: boolean) => {
|
||||
console.log(result);
|
||||
})
|
||||
}
|
@ -10,6 +10,7 @@
|
||||
|
||||
<StackLayout backgroundColor="lightGreen">
|
||||
<Button text="Navigate To Second Page" tap="onNavigate" visibility="{{ navigationVisibility }}" />
|
||||
<Button text="Show Dialog" tap="showDialog" />
|
||||
<Button text="Show Nested Modal Page With Frame" tap="showNestedModalFrame" />
|
||||
<Button text="Show Nested Modal Page" tap="showNestedModalPage" />
|
||||
<Button text="Close Modal" tap="closeModal" />
|
||||
|
Reference in New Issue
Block a user