revert add_transitions

pull/6898/head
baseballyama 5 years ago
parent 7c0337a697
commit 7b6dbcd228

@ -807,20 +807,18 @@ export default class ElementWrapper extends Wrapper {
add_transitions(
block: Block
): { intro: Identifier | null, outro: Identifier | null } {
const names = { intro: null, outro: null };
) {
const { intro, outro } = this.node;
if (!intro && !outro) return names;
if (!intro && !outro) return;
if (intro === outro) {
// bidirectional transition
const name = block.get_unique_name(`${this.var.name}_transition`);
names.intro = names.outro = name;
const snippet = intro.expression
? intro.expression.manipulate(block)
: x`{}`;
block.add_variable(names.intro);
block.add_variable(name);
const fn = this.renderer.reference(intro.name);
@ -855,11 +853,11 @@ export default class ElementWrapper extends Wrapper {
block.chunks.destroy.push(b`if (detaching && ${name}) ${name}.end();`);
} else {
names.intro = intro && block.get_unique_name(`${this.var.name}_intro`);
names.outro = outro && block.get_unique_name(`${this.var.name}_outro`);
const intro_name = intro && block.get_unique_name(`${this.var.name}_intro`);
const outro_name = outro && block.get_unique_name(`${this.var.name}_outro`);
if (intro) {
block.add_variable(names.intro);
block.add_variable(intro_name);
const snippet = intro.expression
? intro.expression.manipulate(block)
: x`{}`;
@ -871,19 +869,19 @@ export default class ElementWrapper extends Wrapper {
if (outro) {
intro_block = b`
@add_render_callback(() => {
if (${names.outro}) ${names.outro}.end(1);
${names.intro} = @create_in_transition(${this.var}, ${fn}, ${snippet});
${names.intro}.start();
if (${outro_name}) ${outro_name}.end(1);
${intro_name} = @create_in_transition(${this.var}, ${fn}, ${snippet});
${intro_name}.start();
});
`;
block.chunks.outro.push(b`if (${names.intro}) ${names.intro}.invalidate();`);
block.chunks.outro.push(b`if (${intro_name}) ${intro_name}.invalidate();`);
} else {
intro_block = b`
if (!${names.intro}) {
if (!${intro_name}) {
@add_render_callback(() => {
${names.intro} = @create_in_transition(${this.var}, ${fn}, ${snippet});
${names.intro}.start();
${intro_name} = @create_in_transition(${this.var}, ${fn}, ${snippet});
${intro_name}.start();
});
}
`;
@ -901,7 +899,7 @@ export default class ElementWrapper extends Wrapper {
}
if (outro) {
block.add_variable(names.outro);
block.add_variable(outro_name);
const snippet = outro.expression
? outro.expression.manipulate(block)
: x`{}`;
@ -910,14 +908,14 @@ export default class ElementWrapper extends Wrapper {
if (!intro) {
block.chunks.intro.push(b`
if (${names.outro}) ${names.outro}.end(1);
if (${outro_name}) ${outro_name}.end(1);
`);
}
// TODO hide elements that have outro'd (unless they belong to a still-outroing
// group) prior to their removal from the DOM
let outro_block = b`
${names.outro} = @create_out_transition(${this.var}, ${fn}, ${snippet});
${outro_name} = @create_out_transition(${this.var}, ${fn}, ${snippet});
`;
if (outro.is_local) {
@ -930,15 +928,13 @@ export default class ElementWrapper extends Wrapper {
block.chunks.outro.push(outro_block);
block.chunks.destroy.push(b`if (detaching && ${names.outro}) ${names.outro}.end();`);
block.chunks.destroy.push(b`if (detaching && ${outro_name}) ${outro_name}.end();`);
}
}
if ((intro && intro.expression && intro.expression.dependencies.size) || (outro && outro.expression && outro.expression.dependencies.size)) {
block.maintain_context = true;
}
return names;
}
add_animation(block: Block) {

Loading…
Cancel
Save