package Ġformula ide . ui . components Ċ Ċ import Ġformula ide . ui . report Exceptions Ċ import Ġkotlinx . coroutines .* Ċ import Ġreact . Children Builder Ċ import Ġreact . useEffect Ċ import Ġreact . useEffect Once Ċ import Ġreact . useState Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġ[ Coroutine Scope ] Ġthat Ġis Ġactive Ġas Ġlong Ġas Ġthis Ġcomponent Ġis Ġmounted . Ċ Ġ* Ċ Ġ* ĠUse Ġthis Ġhook Ġto Ġlaunch Ġcode Ġthat Ġshould Ġbe Ġcancelled Ġif Ġthe Ġcomponent Ġthat Ġstarted Ġit Ġis Ġun mounted . Ċ Ġ*/ Ċ @ Suppress (" unused ") Ġ// ĠChildren Builder Ġis Ġused Ġfor Ġtype Ġsafety Ċ fun ĠChildren Builder . use Async (): ĠCor outine Scope Ġ{ Ċ ĉ val Ġjob Ġby ĠuseState ( Supervisor Job ()) ĊĊ ĉ useEffect Once Ġ{ Ċĉ ĉ cleanup Ġ{ Ċĉĉ ĉ job . cancel (" Le Ġcomp os ant Ġa ĠÃ©tÃ© ĠdÃ© - mont Ã© ") Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ return ĠCor outine Scope ( job ) Ċ } Ċ Ċ @ Suppress (" unused ") Ġ// ĠChildren Builder Ġis Ġused Ġfor Ġtype Ġsafety Ċ fun ĠChildren Builder . use Async Effect ( var arg Ġdependencies : Ġdynamic , Ġeffect : Ġsuspend Ġ() Ġ-> ĠUnit ) Ġ{ Ċ ĉ useEffect ( dependencies ) Ġ{ Ċĉ ĉ val Ġjob Ġ= ĠJob () ĊĊĉ ĉ Coroutine Scope ( job ). launch Ġ{ Ċĉĉ ĉ report Exceptions Ġ{ Ċĉĉĉ ĉ effect () Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĉ ĉ cleanup Ġ{ Ġjob . cancel (" Les ĠdÃ© pend ances Ġde Ġl ' eff et Ġont ĠÃ©tÃ© Ġmod ifi Ã©es ") Ġ} Ċ ĉ } Ċ } Ċ Ċ @ Suppress (" unused ") Ġ// ĠChildren Builder Ġis Ġused Ġfor Ġtype Ġsafety Ċ fun ĠChildren Builder . use Async Effect Once ( effect : Ġsuspend Ġ() Ġ-> ĠUnit ) Ġ{ Ċ ĉ useEffect Once Ġ{ Ċĉ ĉ val Ġjob Ġ= ĠJob () ĊĊĉ ĉ Coroutine Scope ( job ). launch Ġ{ Ċĉĉ ĉ report Exceptions Ġ{ Ċĉĉĉ ĉ effect () Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĉ ĉ cleanup Ġ{ Ġjob . cancel (" Les ĠdÃ© pend ances Ġde Ġl ' eff et Ġont ĠÃ©tÃ© Ġmod ifi Ã©es ") Ġ} Ċ ĉ } Ċ } Ċ