simpler code for case where there is only one outro in a block

pull/1424/head
Rich Harris 7 years ago
parent dc8b0d6be1
commit 2d8d27afb5

@ -262,7 +262,7 @@ export default class Block {
${outroing} = true; ${outroing} = true;
${hasIntros && `${introing} = false;`} ${hasIntros && `${introing} = false;`}
var #outros = ${this.outros}; ${this.outros > 1 && `var #outros = ${this.outros};`}
${this.builders.outro} ${this.builders.outro}
}, },

@ -701,18 +701,18 @@ export default class Element extends Node {
const fn = `%transitions-${intro.name}`; const fn = `%transitions-${intro.name}`;
block.builders.intro.addBlock(deindent` block.builders.intro.addBlock(deindent`
#component.root._aftercreate.push(function() { #component.root._aftercreate.push(() => {
if (!${name}) ${name} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, true, null); if (!${name}) ${name} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, true, null);
${name}.run(true, function() { ${name}.run(true, () => {
#component.fire("intro.end", { node: ${this.var} }); #component.fire("intro.end", { node: ${this.var} });
}); });
}); });
`); `);
block.builders.outro.addBlock(deindent` block.builders.outro.addBlock(deindent`
${name}.run(false, function() { ${name}.run(false, () => {
#component.fire("outro.end", { node: ${this.var} }); #component.fire("outro.end", { node: ${this.var} });
if (--#outros === 0) #outrocallback(); ${block.outros > 1 ? `if (--#outros === 0) #outrocallback();` : `#outrocallback();`}
${name} = null; ${name} = null;
}); });
`); `);
@ -736,9 +736,9 @@ export default class Element extends Node {
} }
block.builders.intro.addBlock(deindent` block.builders.intro.addBlock(deindent`
#component.root._aftercreate.push(function() { #component.root._aftercreate.push(() => {
${introName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, true, null); ${introName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, true, null);
${introName}.run(true, function() { ${introName}.run(true, () => {
#component.fire("intro.end", { node: ${this.var} }); #component.fire("intro.end", { node: ${this.var} });
}); });
}); });
@ -757,9 +757,9 @@ export default class Element extends Node {
// group) prior to their removal from the DOM // group) prior to their removal from the DOM
block.builders.outro.addBlock(deindent` block.builders.outro.addBlock(deindent`
${outroName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, false, null); ${outroName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, false, null);
${outroName}.run(false, function() { ${outroName}.run(false, () => {
#component.fire("outro.end", { node: ${this.var} }); #component.fire("outro.end", { node: ${this.var} });
if (--#outros === 0) #outrocallback(); ${block.outros > 1 ? `if (--#outros === 0) #outrocallback();` : `#outrocallback();`}
}); });
`); `);
} }

Loading…
Cancel
Save