pass params to get_block (#667)

pull/668/head
Rich Harris 7 years ago
parent 096a2fb93b
commit 8d0ec6e61e

@ -395,7 +395,7 @@ function compoundWithOutros(
if (dynamic) { if (dynamic) {
block.builders.update.addBlock(deindent` block.builders.update.addBlock(deindent`
var ${previous_block_index} = ${current_block_index}; var ${previous_block_index} = ${current_block_index};
${current_block_index} = ${get_block}( state ); ${current_block_index} = ${get_block}( ${params} );
if ( ${current_block_index} === ${previous_block_index} ) { if ( ${current_block_index} === ${previous_block_index} ) {
${if_current_block_index}${if_blocks}[ ${current_block_index} ].update( changed, ${params} ); ${if_current_block_index}${if_blocks}[ ${current_block_index} ].update( changed, ${params} );
} else { } else {
@ -405,7 +405,7 @@ function compoundWithOutros(
} else { } else {
block.builders.update.addBlock(deindent` block.builders.update.addBlock(deindent`
var ${previous_block_index} = ${current_block_index}; var ${previous_block_index} = ${current_block_index};
${current_block_index} = ${get_block}( state ); ${current_block_index} = ${get_block}( ${params} );
if ( ${current_block_index} !== ${previous_block_index} ) { if ( ${current_block_index} !== ${previous_block_index} ) {
${changeBlock} ${changeBlock}
} }

@ -0,0 +1,34 @@
export default {
solo: true,
data: {
foo: false,
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');
raf.tick(100);
component.set({ threshold: 4 });
raf.tick( 200 );
assert.htmlEqual(target.innerHTML, `
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
`);
component.destroy();
}
};

@ -0,0 +1,26 @@
{{#each [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] as number}}
{{#if foo}}
{{#if threshold >= number}}
<div transition:foo>{{number}}</div>
{{/if}}
{{else}}
{{#if threshold >= number}}
<div transition:foo>{{number}}</div>
{{/if}}
{{/if}}
{{/each}}
<script>
export default {
transitions: {
foo: function ( node ) {
return {
duration: 100,
tick: t => {
node.foo = t;
}
};
}
}
};
</script>
Loading…
Cancel
Save