|
1 | 1 | import { |
2 | | - TeleportEndKey, |
3 | 2 | type TeleportProps, |
4 | 3 | currentInstance, |
5 | 4 | isTeleportDeferred, |
6 | 5 | isTeleportDisabled, |
7 | 6 | queuePostFlushCb, |
8 | | - resolveTarget, |
| 7 | + resolveTeleportTarget, |
9 | 8 | warn, |
10 | 9 | } from '@vue/runtime-dom' |
11 | 10 | import { type Block, type BlockFn, insert, remove } from '../block' |
@@ -135,15 +134,16 @@ export class TeleportFragment extends VaporFragment { |
135 | 134 | } |
136 | 135 |
|
137 | 136 | const mountToTarget = () => { |
138 | | - const target = (this.target = resolveTarget(props, querySelector)) |
| 137 | + const target = (this.target = resolveTeleportTarget(props, querySelector)) |
139 | 138 | if (target) { |
140 | 139 | if ( |
141 | 140 | // initial mount into target |
142 | 141 | !this.targetAnchor || |
143 | 142 | // target changed |
144 | 143 | this.targetAnchor.parentNode !== target |
145 | 144 | ) { |
146 | | - ;[this.targetAnchor, this.targetStart] = prepareAnchor(target) |
| 145 | + insert((this.targetStart = createTextNode('')), target) |
| 146 | + insert((this.targetAnchor = createTextNode('')), target) |
147 | 147 | } |
148 | 148 |
|
149 | 149 | mount(target, this.targetAnchor!) |
@@ -218,22 +218,6 @@ export class TeleportFragment extends VaporFragment { |
218 | 218 | } |
219 | 219 | } |
220 | 220 |
|
221 | | -function prepareAnchor(target: ParentNode | null) { |
222 | | - const targetStart = createTextNode('') as Text & { [TeleportEndKey]: Node } |
223 | | - const targetAnchor = createTextNode('') |
224 | | - |
225 | | - // attach a special property, so we can skip teleported content in |
226 | | - // renderer's nextSibling search |
227 | | - targetStart[TeleportEndKey] = targetAnchor |
228 | | - |
229 | | - if (target) { |
230 | | - insert(targetStart, target) |
231 | | - insert(targetAnchor, target) |
232 | | - } |
233 | | - |
234 | | - return [targetAnchor, targetStart] |
235 | | -} |
236 | | - |
237 | 221 | export const VaporTeleport = VaporTeleportImpl as unknown as { |
238 | 222 | __vapor: true |
239 | 223 | __isTeleport: true |
|
0 commit comments