From 04199a57fc7a8dc245d3006c748b4055ce36b40a Mon Sep 17 00:00:00 2001 From: MrSnoozles Date: Sun, 27 Oct 2024 10:41:05 +0100 Subject: [PATCH 01/14] feat: importable $closeModal helper (#1088) --- src/index.ts | 2 +- src/plugins/modals.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 66e3a6d2..3b70384c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -40,7 +40,7 @@ export { ELEMENT_REF, createNativeView } from './runtimeHelpers'; export * from '@vue/runtime-core'; export { vShow } from './directives/vShow'; -export { $showModal } from './plugins/modals'; +export { $showModal, $closeModal } from './plugins/modals'; export { $navigateTo, $navigateBack } from './plugins/navigation'; // creates a special root container that calls resetRoot whenever it's children change diff --git a/src/plugins/modals.ts b/src/plugins/modals.ts index 9a82d862..8938649f 100644 --- a/src/plugins/modals.ts +++ b/src/plugins/modals.ts @@ -61,6 +61,8 @@ function resolveModalTarget( return false; } +const modalStack = []; + export async function $showModal( component: Component

, options: ShowModalOptions = {}, @@ -127,6 +129,9 @@ export async function $showModal( }); }; const closeModal = (...args: any[]) => { + // remove view from modalStack + modalStack.splice(modalStack.indexOf(view), 1); + view.nativeView?.closeModal(...args); }; @@ -144,5 +149,12 @@ export async function $showModal( view.mount(root); openModal(); + modalStack.push(view); }); } + +export function $closeModal(...args) { + const view = modalStack.at(-1); + + view?.context.config.globalProperties.$closeModal(...args); +} \ No newline at end of file From d98d9bc193f11bfb0cd77e886651e9aa564504c5 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Thu, 13 Feb 2025 11:54:05 +0100 Subject: [PATCH 02/14] release: 3.0.0-rc.3 --- demo/package.json | 14 +- demo/src/components/Home.vue | 16 +- demo/yarn.lock | 325 +++--- package.json | 29 +- packages/stackblitz-template/package.json | 10 +- packages/template-blank/package.json | 10 +- src/plugins/modals.ts | 11 +- src/renderer/patchProp.ts | 4 - yarn.lock | 1175 ++++++++++----------- 9 files changed, 789 insertions(+), 805 deletions(-) diff --git a/demo/package.json b/demo/package.json index c4149914..f3beb7b7 100644 --- a/demo/package.json +++ b/demo/package.json @@ -4,16 +4,16 @@ "version": "1.0.0", "private": true, "dependencies": { - "@nativescript/core": "~8.7.0", - "@vueuse/components": "^10.9.0", - "@vueuse/core": "^10.9.0", + "@nativescript/core": "~8.8.6", + "@vueuse/components": "^12.5.0", + "@vueuse/core": "^12.5.0", "nativescript-vue": "link:.." }, "devDependencies": { - "@nativescript/android": "~8.7.0", - "@nativescript/ios": "~8.7.0", - "@nativescript/types": "~8.7.0", + "@nativescript/android": "~8.8.6", + "@nativescript/ios": "~8.8.2", + "@nativescript/types": "~8.8.0", "@nativescript/webpack": "~5.0.0", - "typescript": "^5.4.5" + "typescript": "^5.7.3" } } diff --git a/demo/src/components/Home.vue b/demo/src/components/Home.vue index 099da663..c8c19c0b 100644 --- a/demo/src/components/Home.vue +++ b/demo/src/components/Home.vue @@ -2,6 +2,7 @@ import { ListItem, onMounted, onUnmounted } from 'nativescript-vue'; import { goHome } from '../composables/goHome'; import Test from './Test.vue'; +import { $closeModal } from 'nativescript-vue'; withDefaults( defineProps<{ @@ -10,9 +11,7 @@ withDefaults( items?: (string | number)[]; enabled?: boolean; }>(), - { - depth: 0, - }, + { depth: 0 }, ); const message = 'Hello World!!'; @@ -25,11 +24,7 @@ interface Test { const items: Test[] = Array(1000) .fill(0) - .map((_, i) => ({ - name: `Item ${i}`, - foo: i, - bool: true, - })); + .map((_, i) => ({ name: `Item ${i}`, foo: i, bool: true })); function selector(item: ListItem) { return item.even ? 'default' : 'odd'; @@ -42,6 +37,10 @@ onMounted(() => { onUnmounted(() => { console.log('UNMOUNTED HOME'); }); + +function close() { + $closeModal('closed via $closeModal'); +} + + 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) => {