mirror of https://github.com/sveltejs/svelte
26 lines
669 B
26 lines
669 B
import deindent from '../../../../utils/deindent';
|
|
import { DomGenerator } from '../../index';
|
|
import Block from '../../Block';
|
|
import { Node } from '../../../../interfaces';
|
|
import { State } from '../../interfaces';
|
|
|
|
export default function visitRef(
|
|
generator: DomGenerator,
|
|
block: Block,
|
|
state: State,
|
|
node: Node,
|
|
attribute: Node
|
|
) {
|
|
const name = attribute.name;
|
|
|
|
block.builders.mount.addLine(
|
|
`#component.refs.${name} = ${state.parentNode};`
|
|
);
|
|
|
|
block.builders.destroy.addLine(deindent`
|
|
if (#component.refs.${name} === ${state.parentNode}) #component.refs.${name} = null;
|
|
`);
|
|
|
|
generator.usesRefs = true; // so this component.refs object is created
|
|
}
|