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>
|
||||
</Transition>
|
||||
</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">
|
||||
<slot />
|
||||
</component>
|
||||
|
||||
@@ -1532,7 +1532,7 @@ describe('desktop task and habit detail disclosure', () => {
|
||||
expect(mvpPanel).toContain('if (busy.value && !force) return')
|
||||
expect(mvpPanel).toContain(':modal="compactLayout"')
|
||||
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(app).toContain('@click="closeTaskDetail"')
|
||||
expect(app).toContain('function closeTaskDetail()')
|
||||
|
||||
Reference in New Issue
Block a user