Skip to content

Commit 666c75c

Browse files
ADjenkovADjenkov
ADjenkov
authored and
ADjenkov
committed
chore(modal-navigation): update modal-navigation app
1 parent 4943a3e commit 666c75c

File tree

10 files changed

+107
-175
lines changed

10 files changed

+107
-175
lines changed

e2e/modal-navigation-ng/app/app.module.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ import { AppComponent } from "./app.component";
66
import { ItemService } from "./item/item.service";
77
import { ItemsComponent } from "./item/items.component";
88
import { ItemDetailComponent } from "./item/item-detail.component";
9+
910
import { HomeComponent } from "./home/home.component";
10-
import { ModalTest } from "./modal/modal-test";
11+
import { ModalComponent } from "./modal/modal.component";
12+
import { ModalRouterComponent } from "./modal/modal-router/modal-router.component";
1113

1214
// Uncomment and add to NgModule imports if you need to use two-way binding
1315
// import { NativeScriptFormsModule } from "nativescript-angular/forms";
@@ -23,14 +25,14 @@ import { ModalTest } from "./modal/modal-test";
2325
NativeScriptModule,
2426
AppRoutingModule
2527
],
26-
entryComponents: [...ModalTest.entries],
28+
entryComponents: [ModalComponent],
2729
declarations: [
2830
AppComponent,
2931
ItemsComponent,
3032
ItemDetailComponent,
3133
HomeComponent,
32-
ModalTest,
33-
...ModalTest.entries
34+
ModalComponent,
35+
ModalRouterComponent
3436
],
3537
providers: [
3638
ItemService

e2e/modal-navigation-ng/app/app.routing.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
import { NgModule } from "@angular/core";
22
import { NativeScriptRouterModule } from "nativescript-angular/router";
3-
import { Routes } from "@angular/router";
3+
import { Routes, ChildrenOutletContexts } from "@angular/router";
44

55
import { HomeComponent } from "./home/home.component";
6-
import { ItemsComponent } from "./item/items.component";
7-
import { ItemDetailComponent } from "./item/item-detail.component";
8-
import { ModalTest } from "./modal/modal-test";
6+
import { ModalComponent } from "./modal/modal.component";
7+
import { ModalRouterComponent } from "./modal/modal-router/modal-router.component";
98

109
const routes: Routes = [
1110
{ path: "", redirectTo: "/home", pathMatch: "full" },
12-
13-
{ path: "home", component: HomeComponent },
14-
15-
{ path: "modal", component: ModalTest , children: [
16-
{ path: "items", component: ItemsComponent },
17-
{ path: "item/:id", component: ItemDetailComponent },
18-
] },
11+
{
12+
path: "home", component: HomeComponent, children: [{
13+
path: "modal", component: ModalRouterComponent, children: [
14+
{ path: "", component: ModalComponent }
15+
]
16+
}]
17+
}
1918
];
2019

2120
@NgModule({
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<ActionBar class="action-bar">
2+
<Label class="action-bar-title" text="Home"></Label>
3+
</ActionBar>
4+
5+
<StackLayout>
6+
<Button text="Show Modal Page With Frame" (tap)="onModalFrame()"></Button>
7+
<Button text="Show Modal Page" (tap)="onModalPage"></Button>
8+
<Button text="Show Modal Layout" (tap)="onModalLayout"></Button>
9+
<Button text="Show Modal TabView" (tap)="onModalTabView"></Button>
10+
<Button text="Navigate To Second Page" (tap)="onNavigate"></Button>
11+
<Button text="Reset Frame Root View" (tap)="onFrameRootViewReset"></Button>
12+
<Button text="Reset Tab Root View" (tap)="onTabRootViewReset"></Button>
13+
<Button text="Reset Layout Root View" (tap)="onLayoutRootViewReset"></Button>
14+
</StackLayout>
Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
import { Component, ViewContainerRef } from "@angular/core";
2+
import { ModalDialogService, ModalDialogOptions } from "nativescript-angular/directives/dialogs";
3+
import { EventData } from "tns-core-modules/data/observable";
4+
import { Frame } from "tns-core-modules/ui/frame";
5+
import { View } from "tns-core-modules/ui/core/view";
6+
import { ModalRouterComponent } from "../modal/modal-router/modal-router.component";
7+
import { PageRouterOutlet } from "nativescript-angular/router/page-router-outlet";
28
import { RouterExtensions } from "nativescript-angular/router";
39

410
@Component({
5-
selector: "modal-test",
6-
template: `
7-
<GridLayout rows="*, auto">
8-
<Button text="got to modal page" (tap)="gotToModal()"></Button>
9-
</GridLayout>
10-
`
11+
moduleId: module.id,
12+
selector: "home-page",
13+
templateUrl: "./home.component.html"
1114
})
1215
export class HomeComponent {
16+
constructor(private modal: ModalDialogService, private vcRef: ViewContainerRef, private routerExtension: RouterExtensions) { }
1317

14-
public result: string = "result";
18+
public onModalFrame(args: EventData) {
19+
const options: ModalDialogOptions = {
20+
// context: null,
21+
fullscreen: true,
22+
viewContainerRef: this.vcRef
23+
};
1524

16-
constructor(private _routerExtensions: RouterExtensions, private vcRef: ViewContainerRef) { }
17-
18-
public gotToModal() {
19-
this._routerExtensions.navigate(["/modal"]); //{clearHistory: true}
25+
this.modal.showModal(ModalRouterComponent, options).then((res: string) => {
26+
console.log("MODAL SHOWN");
27+
});
2028
}
2129
}

e2e/modal-navigation-ng/app/modal/modal-nested-test.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<page-router-outlet></page-router-outlet>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { Component } from "@angular/core";
2+
import { Router, NavigationEnd, ActivatedRoute } from "@angular/router";
3+
import { NSLocationStrategy } from "nativescript-angular/router/ns-location-strategy";
4+
import { RouterExtensions } from "nativescript-angular/router";
5+
6+
@Component({
7+
selector: "ns-router",
8+
templateUrl: "app.component.html",
9+
})
10+
11+
export class ModalRouterComponent {
12+
constructor(router: Router, location: NSLocationStrategy, private routerExtension: RouterExtensions, private activeRoute: ActivatedRoute) {
13+
router.events.subscribe(e => {
14+
if (e instanceof NavigationEnd) {
15+
console.log("[ROUTER]: " + e.toString());
16+
console.log(location.toString());
17+
}
18+
});
19+
}
20+
21+
ngOnInit() {
22+
this.routerExtension.navigate(["modal"], { relativeTo: this.activeRoute });
23+
}
24+
}

e2e/modal-navigation-ng/app/modal/modal-test.ts

Lines changed: 0 additions & 109 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<ActionBar>
2+
<Label text="Modal"></Label>
3+
</ActionBar>
4+
5+
<GridLayout #rootLayout rows="*, auto">
6+
<StackLayout>
7+
<!-- <page-router-outlet></page-router-outlet> -->
8+
</StackLayout>
9+
<StackLayout backgroundColor="lightGreen">
10+
<Button text="Navigate To Second Page" (tap)="onNavigate" visibility="{{ navigationVisibility }}"></Button>
11+
<Button text="Show Dialog Confirm" (tap)="showDialogConfirm()"></Button>
12+
<Button text="Show Nested Modal Page With Frame" (tap)="showNestedModalFrame()"></Button>
13+
<Button text="Show Nested Modal Page" (tap)="showNestedModalPage()"></Button>
14+
<Button text="Close Modal" (tap)="close(rootLayout)"></Button>
15+
</StackLayout>
16+
</GridLayout>

e2e/modal-navigation-ng/app/modal/modal-content.ts renamed to e2e/modal-navigation-ng/app/modal/modal.component.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,14 @@ import { ModalDialogParams } from "nativescript-angular/directives/dialogs";
33
import { RouterExtensions, PageRoute } from "nativescript-angular/router";
44
import { ActivatedRoute } from "@angular/router";
55
import { View } from "ui/core/view"
6+
import { confirm } from "ui/dialogs";
67

78
@Component({
8-
selector: "modal-content",
9-
template: `
10-
<GridLayout #rootLayout margin="24" horizontalAlignment="center" verticalAlignment="center" rows="*, auto">
11-
<StackLayout>
12-
<page-router-outlet></page-router-outlet>
13-
</StackLayout>
14-
<StackLayout row="1" orientation="horizontal" marginTop="12">
15-
<Button text="back" (tap)="back()"></Button>
16-
<Button text="ok" (tap)="close('OK')"></Button>
17-
<Button text="cancel" (tap)="close(rootLayout)"></Button>
18-
</StackLayout>
19-
</GridLayout>
20-
`
9+
moduleId: module.id,
10+
selector: "modal-page",
11+
templateUrl: "./modal.component.html"
2112
})
22-
export class ModalContent {
13+
export class ModalComponent {
2314

2415
@Input() public prompt: string;
2516
public yes: boolean = true;
@@ -35,16 +26,25 @@ export class ModalContent {
3526

3627
public close(layoutRoot: View) {
3728
layoutRoot.closeModal();
38-
// this.params.closeCallback(res);
3929
}
4030

4131
ngOnInit() {
42-
this.nav.navigate(["items"], { relativeTo: this.activeRoute });
43-
console.log("ModalContent.ngOnInit");
4432
}
4533

4634
ngOnDestroy() {
4735
console.log("ModalContent.ngOnDestroy");
4836
}
4937

38+
showDialogConfirm() {
39+
let options = {
40+
title: "Dialog",
41+
message: "Message",
42+
okButtonText: "Yes",
43+
cancelButtonText: "No"
44+
45+
}
46+
confirm(options).then((result: boolean) => {
47+
console.log(result);
48+
})
49+
}
5050
}

0 commit comments

Comments
 (0)