From 0692ea701119633cd1abecff0c0d1cb9e1a7c733 Mon Sep 17 00:00:00 2001 From: baiwusanyu-c <740132583@qq.com> Date: Mon, 16 Jan 2023 17:22:37 +0800 Subject: [PATCH 1/5] fix(transitionGroup): `transitionGroup` can render `:slotted` styles --- packages/runtime-core/src/vnode.ts | 2 +- packages/runtime-dom/src/components/TransitionGroup.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index 83eedc4cc..838ada464 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -431,7 +431,7 @@ function createBaseVNode( key: props && normalizeKey(props), ref: props && normalizeRef(props), scopeId: currentScopeId, - slotScopeIds: null, + slotScopeIds: props && props.slotScopeIds, children, component: null, suspense: null, diff --git a/packages/runtime-dom/src/components/TransitionGroup.ts b/packages/runtime-dom/src/components/TransitionGroup.ts index 5c78be26d..35c025611 100644 --- a/packages/runtime-dom/src/components/TransitionGroup.ts +++ b/packages/runtime-dom/src/components/TransitionGroup.ts @@ -136,7 +136,13 @@ const TransitionGroupImpl: ComponentOptions = { } } - return createVNode(tag, null, children) + return createVNode( + tag, + { + slotScopeIds: instance.vnode.slotScopeIds + }, + children + ) } } } From e49ecec498709720297e0b82327cf18e6ae9a114 Mon Sep 17 00:00:00 2001 From: baiwusanyu <740132583@qq.com> Date: Mon, 16 Jan 2023 22:25:34 +0800 Subject: [PATCH 2/5] fix(runtime-dom): added unit test --- .../runtime-core/__tests__/scopeId.spec.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/packages/runtime-core/__tests__/scopeId.spec.ts b/packages/runtime-core/__tests__/scopeId.spec.ts index cdbb81c41..590f8977d 100644 --- a/packages/runtime-core/__tests__/scopeId.spec.ts +++ b/packages/runtime-core/__tests__/scopeId.spec.ts @@ -9,6 +9,7 @@ import { popScopeId } from '@vue/runtime-test' import { withCtx } from '../src/componentRenderContext' +import { TransitionGroup } from '@vue/runtime-dom' describe('scopeId runtime support', () => { test('should attach scopeId', () => { @@ -161,6 +162,41 @@ describe('scopeId runtime support', () => { ) }) + test(':slotted should work on transitionGroup', async () => { + const Child = { + __scopeId: 'child', + render(this: any) { + return h('div', renderSlot(this.$slots, 'default')) + } + } + + const App = { + __scopeId: 'parent', + render: () => { + return h( + Child, + withCtx(() => { + return [ + h(TransitionGroup, null, { + default: withCtx(() => [ + h('div', { key: 'foo' }, ' I have a TransitionGroup ') + ]) + }) + ] + }) + ) + } + } + const root = nodeOps.createElement('div') + render(h(App), root) + // slot content should have: + // - scopeId from parent + // - slotted scopeId (with `-s` postfix) from child (the tree owner) + expect(serializeInner(root)).toBe( + `
I have a TransitionGroup
` + ) + }) + // #1988 test('should inherit scopeId through nested HOCs with inheritAttrs: false', () => { const App = { From c8c783e6ceb109db0d07be71b1cc6b90870e178d Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 08:24:58 +0000 Subject: [PATCH 3/5] [autofix.ci] apply automated fixes --- packages/runtime-core/__tests__/scopeId.spec.ts | 14 +++++++------- .../runtime-dom/src/components/TransitionGroup.ts | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/runtime-core/__tests__/scopeId.spec.ts b/packages/runtime-core/__tests__/scopeId.spec.ts index d8f8fcdd5..7a87fef18 100644 --- a/packages/runtime-core/__tests__/scopeId.spec.ts +++ b/packages/runtime-core/__tests__/scopeId.spec.ts @@ -167,7 +167,7 @@ describe('scopeId runtime support', () => { __scopeId: 'child', render(this: any) { return h('div', renderSlot(this.$slots, 'default')) - } + }, } const App = { @@ -179,13 +179,13 @@ describe('scopeId runtime support', () => { return [ h(TransitionGroup, null, { default: withCtx(() => [ - h('div', { key: 'foo' }, ' I have a TransitionGroup ') - ]) - }) + h('div', { key: 'foo' }, ' I have a TransitionGroup '), + ]), + }), ] - }) + }), ) - } + }, } const root = nodeOps.createElement('div') render(h(App), root) @@ -193,7 +193,7 @@ describe('scopeId runtime support', () => { // - scopeId from parent // - slotted scopeId (with `-s` postfix) from child (the tree owner) expect(serializeInner(root)).toBe( - `
I have a TransitionGroup
` + `
I have a TransitionGroup
`, ) }) diff --git a/packages/runtime-dom/src/components/TransitionGroup.ts b/packages/runtime-dom/src/components/TransitionGroup.ts index 5d415ca8f..1a670ee6d 100644 --- a/packages/runtime-dom/src/components/TransitionGroup.ts +++ b/packages/runtime-dom/src/components/TransitionGroup.ts @@ -141,9 +141,9 @@ const TransitionGroupImpl: ComponentOptions = { return createVNode( tag, { - slotScopeIds: instance.vnode.slotScopeIds + slotScopeIds: instance.vnode.slotScopeIds, }, - children + children, ) } }, From beb6694695827ea18ddf5eb0bce1fc0ae742d49a Mon Sep 17 00:00:00 2001 From: baiwusanyu-c Date: Tue, 20 Aug 2024 14:06:19 +0800 Subject: [PATCH 4/5] fix(runtime-dom): updated code --- packages/runtime-core/src/vnode.ts | 3 ++- packages/runtime-dom/src/components/TransitionGroup.ts | 10 +++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index 23440be8c..cd1b894e1 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -468,8 +468,9 @@ function createBaseVNode( props, key: props && normalizeKey(props), ref: props && normalizeRef(props), + slotScopeIds: null, scopeId: currentScopeId, - slotScopeIds: props && props.slotScopeIds, + // slotScopeIds: props && props.slotScopeIds, children, component: null, suspense: null, diff --git a/packages/runtime-dom/src/components/TransitionGroup.ts b/packages/runtime-dom/src/components/TransitionGroup.ts index 658154d62..0e39aa4e9 100644 --- a/packages/runtime-dom/src/components/TransitionGroup.ts +++ b/packages/runtime-dom/src/components/TransitionGroup.ts @@ -149,13 +149,9 @@ const TransitionGroupImpl: ComponentOptions = { } } - return createVNode( - tag, - { - slotScopeIds: instance.vnode.slotScopeIds, - }, - children, - ) + const node = createVNode(tag, null, children) + node.slotScopeIds = instance.vnode.slotScopeIds + return node } }, } From 7ca6a18ef7dd43ec4c86b6607751ed520df56160 Mon Sep 17 00:00:00 2001 From: baiwusanyu-c Date: Tue, 20 Aug 2024 14:08:59 +0800 Subject: [PATCH 5/5] fix(runtime-dom): delete comment --- packages/runtime-core/src/vnode.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index cd1b894e1..57c0cf8b7 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -468,9 +468,8 @@ function createBaseVNode( props, key: props && normalizeKey(props), ref: props && normalizeRef(props), - slotScopeIds: null, scopeId: currentScopeId, - // slotScopeIds: props && props.slotScopeIds, + slotScopeIds: null, children, component: null, suspense: null,