mirror of
https://github.com/sveltejs/svelte.git
synced 2024-12-01 17:30:59 +01:00
Merge pull request #1424 from sveltejs/single-outrocallback
simpler code for case where there is only one outro in a block
This commit is contained in:
commit
3f906fbfdb
@ -262,7 +262,7 @@ export default class Block {
|
||||
${outroing} = true;
|
||||
${hasIntros && `${introing} = false;`}
|
||||
|
||||
var #outros = ${this.outros};
|
||||
${this.outros > 1 && `var #outros = ${this.outros};`}
|
||||
|
||||
${this.builders.outro}
|
||||
},
|
||||
|
@ -701,18 +701,18 @@ export default class Element extends Node {
|
||||
const fn = `%transitions-${intro.name}`;
|
||||
|
||||
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);
|
||||
${name}.run(true, function() {
|
||||
${name}.run(true, () => {
|
||||
#component.fire("intro.end", { node: ${this.var} });
|
||||
});
|
||||
});
|
||||
`);
|
||||
|
||||
block.builders.outro.addBlock(deindent`
|
||||
${name}.run(false, function() {
|
||||
${name}.run(false, () => {
|
||||
#component.fire("outro.end", { node: ${this.var} });
|
||||
if (--#outros === 0) #outrocallback();
|
||||
${block.outros > 1 ? `if (--#outros === 0) #outrocallback();` : `#outrocallback();`}
|
||||
${name} = null;
|
||||
});
|
||||
`);
|
||||
@ -736,9 +736,9 @@ export default class Element extends Node {
|
||||
}
|
||||
|
||||
block.builders.intro.addBlock(deindent`
|
||||
#component.root._aftercreate.push(function() {
|
||||
#component.root._aftercreate.push(() => {
|
||||
${introName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, true, null);
|
||||
${introName}.run(true, function() {
|
||||
${introName}.run(true, () => {
|
||||
#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
|
||||
block.builders.outro.addBlock(deindent`
|
||||
${outroName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, false, null);
|
||||
${outroName}.run(false, function() {
|
||||
${outroName}.run(false, () => {
|
||||
#component.fire("outro.end", { node: ${this.var} });
|
||||
if (--#outros === 0) #outrocallback();
|
||||
${block.outros > 1 ? `if (--#outros === 0) #outrocallback();` : `#outrocallback();`}
|
||||
});
|
||||
`);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user