fix: skip closed inline teleports so sheets never mount against a missing target
This commit is contained in:
@@ -100,7 +100,7 @@ onBeforeUnmount(deactivate)
|
|||||||
</div>
|
</div>
|
||||||
</Transition>
|
</Transition>
|
||||||
</Teleport>
|
</Teleport>
|
||||||
<Teleport v-else-if="inlineTarget" :key="'app-sheet-inline'" :to="inlineTarget">
|
<Teleport v-else-if="inlineTarget && open" :key="'app-sheet-inline'" :to="inlineTarget">
|
||||||
<component v-if="open" :is="$attrs.onSubmit ? 'form' : 'section'" ref="panel" class="app-sheet" :class="[`app-sheet--${variant}`, panelClass]" role="dialog" :aria-labelledby="titleId" :aria-describedby="descriptionId" :aria-label="label" :aria-busy="busy || undefined" tabindex="-1" v-bind="$attrs" @keydown="keydown">
|
<component v-if="open" :is="$attrs.onSubmit ? 'form' : 'section'" ref="panel" class="app-sheet" :class="[`app-sheet--${variant}`, panelClass]" role="dialog" :aria-labelledby="titleId" :aria-describedby="descriptionId" :aria-label="label" :aria-busy="busy || undefined" tabindex="-1" v-bind="$attrs" @keydown="keydown">
|
||||||
<slot />
|
<slot />
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
@@ -1532,7 +1532,7 @@ describe('desktop task and habit detail disclosure', () => {
|
|||||||
expect(mvpPanel).toContain('if (busy.value && !force) return')
|
expect(mvpPanel).toContain('if (busy.value && !force) return')
|
||||||
expect(mvpPanel).toContain(':modal="compactLayout"')
|
expect(mvpPanel).toContain(':modal="compactLayout"')
|
||||||
expect(mvpPanel).toContain('inline-target=".shell"')
|
expect(mvpPanel).toContain('inline-target=".shell"')
|
||||||
expect(appSheet).toContain(`<Teleport v-else-if="inlineTarget" :key="'app-sheet-inline'" :to="inlineTarget">`)
|
expect(appSheet).toContain(`<Teleport v-else-if="inlineTarget && open" :key="'app-sheet-inline'" :to="inlineTarget">`)
|
||||||
expect(mvpPanel).toContain("watch(selectedHabit, (habit) => emit('detail', Boolean(habit)))")
|
expect(mvpPanel).toContain("watch(selectedHabit, (habit) => emit('detail', Boolean(habit)))")
|
||||||
expect(app).toContain('@click="closeTaskDetail"')
|
expect(app).toContain('@click="closeTaskDetail"')
|
||||||
expect(app).toContain('function closeTaskDetail()')
|
expect(app).toContain('function closeTaskDetail()')
|
||||||
|
|||||||
Reference in New Issue
Block a user