From e47e30ee0e01edce537acbd6a49849cfd4537fa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20de=20Dios=20Mart=C3=ADnez=20Vallejo?= Date: Wed, 12 Mar 2025 17:10:56 +0100 Subject: [PATCH 1/5] fix: remove useConfig call as no longer required (#1093) --- nativescript.webpack.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/nativescript.webpack.js b/nativescript.webpack.js index 602f08f9..087550b2 100644 --- a/nativescript.webpack.js +++ b/nativescript.webpack.js @@ -61,8 +61,6 @@ function startVueDevtools(port, isAndroid = false) { * @param {typeof import("@nativescript/webpack")} webpack */ module.exports = (webpack) => { - webpack.useConfig('vue'); - webpack.chainWebpack((config, env) => { const additionalDefines = { __VUE_PROD_DEVTOOLS__: false, From 4ea4cb336130b81388d2fed2f61738ddc838228e Mon Sep 17 00:00:00 2001 From: Dimitris-Rafail Katsampas Date: Wed, 12 Mar 2025 18:22:53 +0200 Subject: [PATCH 2/5] fix: page unmount type error (#1092) * fix: page unmount type error * chore: added an event precaution * chore: added another listener remove call --- src/plugins/navigation.ts | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/plugins/navigation.ts b/src/plugins/navigation.ts index 5bea2885..10ed3d58 100644 --- a/src/plugins/navigation.ts +++ b/src/plugins/navigation.ts @@ -1,4 +1,10 @@ -import { Frame, NavigationEntry, Page } from '@nativescript/core'; +import { + EventData, + Frame, + NavigationEntry, + Page, + ViewBase, +} from '@nativescript/core'; import { App, Component, Ref, nextTick, unref } from '@vue/runtime-core'; import { NSVElement, NSVRoot } from '../dom'; import { CreateNativeViewProps, createNativeView } from '../runtimeHelpers'; @@ -75,19 +81,17 @@ export function $navigateTo

( const root = new NSVRoot(); let isReloading = false; - const attachDisposeCallback = (page: Page) => { - const dispose = page.disposeNativeView; + const disposeCallback = (args: EventData) => { + const page = args.object as Page; - page.disposeNativeView = () => { - dispose.call(page); - - // if we are reloading, don't unmount the view, as the reload will unmount/remount it. - if (!isReloading) { - view.unmount(); - view = null; - } - }; + // if we are reloading, don't unmount the view, as the reload will unmount/remount it. + if (!isReloading && view) { + page.off(ViewBase.disposeNativeViewEvent, disposeCallback); + view.unmount(); + view = null; + } }; + const reloadPage = () => { if (isReloading) { return; @@ -106,7 +110,8 @@ export function $navigateTo

( isReloading = true; view.unmount(); view.mount(root); - attachDisposeCallback(view.nativeView); + view.nativeView.off(ViewBase.disposeNativeViewEvent, disposeCallback); + view.nativeView.on(ViewBase.disposeNativeViewEvent, disposeCallback); const originalTransition = frame.currentEntry.transition; // replace current page @@ -133,7 +138,8 @@ export function $navigateTo

( }); view.mount(root); - attachDisposeCallback(view.nativeView); + view.nativeView.off(ViewBase.disposeNativeViewEvent, disposeCallback); + view.nativeView.on(ViewBase.disposeNativeViewEvent, disposeCallback); frame.navigate({ ...options, From 19a91aaa4f1459bbc699344eeee82ef529fbb430 Mon Sep 17 00:00:00 2001 From: MrSnoozles Date: Wed, 12 Mar 2025 17:26:30 +0100 Subject: [PATCH 3/5] feat: more useful error logging in DEV (#1089) More useful error handler Log an error with the actual problem --- src/index.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/index.ts b/src/index.ts index 3b70384c..59488f46 100644 --- a/src/index.ts +++ b/src/index.ts @@ -97,6 +97,14 @@ export const createApp = ((...args) => { app.use(modalsPlugin); app.use(navigationPlugin); + app.config.errorHandler = (err, instance, info) => { + console.error((info ? `Error during execution of ${info}: ` : ``) + err); + + if(__DEV__) { + throw err; + } + }; + return app; }) as CreateAppFunction; From 3fcfc7340a4d00ca2a6c60ceb0ca58d145c73939 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Wed, 12 Mar 2025 20:51:01 +0100 Subject: [PATCH 4/5] chore: demo changes --- demo/src/components/Home.vue | 8 ++++++++ demo/src/components/demo_ListView.vue | 1 + 2 files changed, 9 insertions(+) diff --git a/demo/src/components/Home.vue b/demo/src/components/Home.vue index c8c19c0b..881cacb3 100644 --- a/demo/src/components/Home.vue +++ b/demo/src/components/Home.vue @@ -89,3 +89,11 @@ function close() { + + diff --git a/demo/src/components/demo_ListView.vue b/demo/src/components/demo_ListView.vue index 076075fb..4503e574 100644 --- a/demo/src/components/demo_ListView.vue +++ b/demo/src/components/demo_ListView.vue @@ -95,6 +95,7 @@ const onItemTap = useDebounceFn((item: Item) => {