Size: a a a

2021 March 20

КС

Кирилл Спасибович... in Svelte [svelt]
они ж как-то ждут завершения своих "транзишенов"
источник

МТ

Марк Танащук... in Svelte [svelt]
Кирилл Спасибович
может ишак накатать ?
источник

КС

Кирилл Спасибович... in Svelte [svelt]
типа unmount: wait until destroy resolves
и запускать как-то use-blocking:action или use:action={{blocking: true}}
как думаешь ?
источник

КС

Кирилл Спасибович... in Svelte [svelt]
function action(node) {
 return () => {
   return new Promise((resolve) => {
     doGsapAnimation(node);
     resolve();
   });
 };
}
источник

МТ

Марк Танащук... in Svelte [svelt]
Напомни пожалуйста для чего?
источник

КС

Кирилл Спасибович... in Svelte [svelt]
для того чтобы можно было произвольные транзишены делать
источник

КС

Кирилл Спасибович... in Svelte [svelt]
на маунтах онмаунтах ноды
источник

КС

Кирилл Спасибович... in Svelte [svelt]
и вообще отвязаться от свелтовских когда нужно
источник

МТ

Марк Танащук... in Svelte [svelt]
В юзерленде это слишком просто делается так что думаю за это не возьмутся :(
источник

КС

Кирилл Спасибович... in Svelte [svelt]
и как же это сделать ?
источник

МТ

Марк Танащук... in Svelte [svelt]
Как минимум вместо прямого изменения в коде переменной ({#if visible}) после чего вызывается анимация можно в gsap вызвать после окончания анимации onComplete: () => visible = false и тогда код пропадет после анимации
источник

МТ

Марк Танащук... in Svelte [svelt]
Без гсапа концепт вроде тот же но муторней
источник

КС

Кирилл Спасибович... in Svelte [svelt]
ну это начинает вонять императивщиной
источник

МТ

Марк Танащук... in Svelte [svelt]
Та если и согласятся то только на css какой-то
источник

КС

Кирилл Спасибович... in Svelte [svelt]
и становится неудобным
источник

КС

Кирилл Спасибович... in Svelte [svelt]
уже же не запакуешь так аккуратно в экшен
источник

КС

Кирилл Спасибович... in Svelte [svelt]
нужно отдельный хендлер делать, который будет запускать анимацию, которая потом втыкнет visible = false
источник

КС

Кирилл Спасибович... in Svelte [svelt]
в общем я думаю что если destroy в экшене возвращает промис, то надо не анмаунтить ноду пока он не зарезолвится, вот это было бы крутяк
источник

КС

Кирилл Спасибович... in Svelte [svelt]
обычно же он ничего не возвращает
источник

МТ

Марк Танащук... in Svelte [svelt]
Кирилл Спасибович
уже же не запакуешь так аккуратно в экшен
<script>
 function animate(node, isVisible) {
   gsap.to(node, {
     // initAnimation
   })

   return {
     update(isVisible) {
       gsap.to(node, {
         //destroyAnimation,
         onComplete: () => visible = false
      })
     }
   }
 }
</script>

{#if visible}
 <div use:animate={isVisible}>content</div>
{/if}
источник