Skip to content

Commit

Permalink
fix(transition): toggling branches with in-out mode should be transit…
Browse files Browse the repository at this point in the history
…ioned correctly (#3109)

fix #3104
  • Loading branch information
HcySunYang authored Mar 22, 2021
1 parent b2e00f0 commit 67a0290
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 8 deletions.
29 changes: 22 additions & 7 deletions packages/runtime-core/__tests__/components/BaseTransition.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -247,14 +247,17 @@ describe('BaseTransition', () => {
})

describe('toggle on-off', () => {
async function testToggleOnOff({
trueBranch,
trueSerialized,
falseBranch,
falseSerialized
}: ToggleOptions) {
async function testToggleOnOff(
{
trueBranch,
trueSerialized,
falseBranch,
falseSerialized
}: ToggleOptions,
mode?: BaseTransitionProps['mode']
) {
const toggle = ref(true)
const { props, cbs } = mockProps()
const { props, cbs } = mockProps({ mode })
const root = mount(
props,
() => (toggle.value ? trueBranch() : falseBranch())
Expand Down Expand Up @@ -322,6 +325,18 @@ describe('BaseTransition', () => {
falseSerialized: `<!---->`
})
})

test('w/ mode: "in-out', async () => {
await testToggleOnOff(
{
trueBranch: () => h('div'),
trueSerialized: `<div></div>`,
falseBranch: () => null,
falseSerialized: `<!---->`
},
'in-out'
)
})
})

describe('toggle on-off before finish', () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/runtime-core/src/components/BaseTransition.ts
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ const BaseTransitionImpl = {
instance.update()
}
return emptyPlaceholder(child)
} else if (mode === 'in-out') {
} else if (mode === 'in-out' && innerChild.type !== Comment) {
leavingHooks.delayLeave = (
el: TransitionElement,
earlyRemove,
Expand Down

0 comments on commit 67a0290

Please sign in to comment.