From 8b654a0b3bed1069835067cf7e045c5535dded0e Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Wed, 8 Mar 2023 21:08:16 -0800 Subject: [PATCH] feat: ios page push/pop shared element transitions --- apps/toolbox/src/pages/transitions.ts | 22 +- .../pages/transitions/transitions-detail.xml | 2 +- packages/core/global-types.d.ts | 2 +- packages/core/ui/core/view/index.ios.ts | 6 +- packages/core/ui/frame/index.ios.ts | 12 + packages/core/ui/index.ts | 2 +- packages/core/ui/transition/index.android.ts | 10 +- packages/core/ui/transition/index.d.ts | 25 +- packages/core/ui/transition/index.ios.ts | 42 ++- .../core/ui/transition/modal-transition.d.ts | 1 - .../ui/transition/modal-transition.ios.ts | 64 +--- .../ui/transition/page-transition.android.ts | 124 +++++++ .../core/ui/transition/page-transition.d.ts | 2 + .../core/ui/transition/page-transition.ios.ts | 316 ++++++++++++++++++ .../core/ui/transition/shared-transition.ts | 1 + 15 files changed, 548 insertions(+), 83 deletions(-) create mode 100644 packages/core/ui/transition/page-transition.android.ts create mode 100644 packages/core/ui/transition/page-transition.d.ts create mode 100644 packages/core/ui/transition/page-transition.ios.ts diff --git a/apps/toolbox/src/pages/transitions.ts b/apps/toolbox/src/pages/transitions.ts index acc20f9dc..096984c13 100644 --- a/apps/toolbox/src/pages/transitions.ts +++ b/apps/toolbox/src/pages/transitions.ts @@ -1,5 +1,4 @@ -import { Observable, EventData, Page, ShowModalOptions, SharedTransition, ModalTransition, TransitionType, Screen } from '@nativescript/core'; -// import { DetailTransition } from './transitions/detail'; +import { Observable, EventData, Page, ShowModalOptions, SharedTransition, ModalTransition, PageTransition, Screen } from '@nativescript/core'; let page: Page; export function navigatingTo(args: EventData) { @@ -12,13 +11,22 @@ export function navigatingTo(args: EventData) { // } export class TransitionsModel extends Observable { open() { - // const detailTransition = new DetailTransition(400, global.isIOS ? UIViewAnimationCurve.EaseInOut : null); - // detailTransition.page = page; page.frame.navigate({ moduleName: `pages/transitions/transitions-detail`, - // transition: { - // instance: detailTransition, - // }, + transition: { + instance: SharedTransition.configure({ + page, + instance: new PageTransition(), + incomingViewStart: { + y: 200, + duration: 1000, + }, + dismissViewEnd: { + y: 100, + duration: 500, + }, + }), + }, }); } diff --git a/apps/toolbox/src/pages/transitions/transitions-detail.xml b/apps/toolbox/src/pages/transitions/transitions-detail.xml index 1edad65a7..df4c20d57 100644 --- a/apps/toolbox/src/pages/transitions/transitions-detail.xml +++ b/apps/toolbox/src/pages/transitions/transitions-detail.xml @@ -8,7 +8,7 @@ -