Skip to content

Commit

Permalink
Merge pull request #666 from sveltejs/gh-665
Browse files Browse the repository at this point in the history
only run create() for new if blocks
  • Loading branch information
Rich-Harris authored Jun 23, 2017
2 parents 3269ed4 + de2e059 commit e64ee93
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/generators/dom/visitors/IfBlock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,10 @@ function simple(
`
: branch.hasIntroMethod
? deindent`
if ( !${name} ) ${name} = ${branch.block}( ${params}, ${block.component} );
${name}.create();
if ( !${name} ) {
${name} = ${branch.block}( ${params}, ${block.component} );
${name}.create();
}
${name}.intro( ${parentNode}, ${anchor} );
`
: deindent`
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
export default {
data: {
threshold: 5
},

html: `
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
`,

test ( assert, component, target, window, raf ) {
const divs = target.querySelectorAll('div');

assert.equal(divs[0].foo, 0);

raf.tick(100);
assert.equal(divs[0].foo, 1);

component.set({ threshold: 4 });
assert.equal( divs[4].foo, 1 );

raf.tick( 200 );
assert.htmlEqual(target.innerHTML, `
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
`);

component.set({ threshold: 3 });
assert.equal( divs[3].foo, 1 );

raf.tick( 300 );
assert.htmlEqual(target.innerHTML, `
<div>1</div>
<div>2</div>
<div>3</div>
`);

component.destroy();
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{{#each [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] as number}}
{{#if threshold >= number}}
<div transition:foo>{{number}}</div>
{{/if}}
{{/each}}

<script>
export default {
transitions: {
foo: function ( node ) {
return {
duration: 100,
tick: t => {
node.foo = t;
}
};
}
}
};
</script>

0 comments on commit e64ee93

Please sign in to comment.