/* Ċ Ġ* ĠDevelop ed Ġby Ġn 1 k 3 c Ġ( N ik ola ĠC uri lo vi Äĩ ) ĠĠ 2 0 2 1 Ċ Ġ* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ċ Ġ* Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ċ Ġ* Ġdistributed Ġwith Ġthis Ġwork Ġfor Ġadditional Ġinformation Ċ Ġ* Ġregarding Ġcopyright Ġownership . Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ċ Ġ* Ġto Ġyou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ċ Ġ* Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ċ Ġ* Ġwith Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ċ Ġ* Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ċ Ġ* Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY Ċ Ġ* ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ċ Ġ* Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ċ Ġ* Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ni ke c . coin compose . coins . list Ċ Ċ import Ġandroidx . compose . foundation . lazy . remember Lazy List State Ċ import Ġandroidx . compose . foundation . remember Scroll State Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . paging . compose . collect As Lazy Paging Items Ċ import Ġcom . ni ke c . coin compose . core . ui . extensions . remember Flow With Lifecycle Ċ import Ġkotlinx . coroutines . flow . collect Ċ Ċ @ Composable Ċ fun ĠCoin s Screen ( viewModel : ĠCoin s ViewModel ) Ġ{ ĊĠĠĠ Ġval Ġcoins List Ġ= ĠviewModel . pag inated Coins . collect As Lazy Paging Items () ĊĠĠĠ Ġval Ġcoin List Events Ġ= Ġremember Flow With Lifecycle ( flow Ġ= ĠviewModel . coin List Events ) ĊĠĠĠ Ġval Ġcurrency Ġ= ĊĠĠĠĠĠĠĠ Ġremember Flow With Lifecycle ( flow Ġ= ĠviewModel . currency ). collect As State ( initial Ġ= Ġnull ). value ĊĠĠĠ Ġval Ġscroll State Ġ= Ġremember Scroll State () ĊĠĠĠ Ġval Ġlist State Ġ= Ġremember Lazy List State () ĊĊĠĠĠ ĠLa unched Effect ( coin List Events ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcoin List Events . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCoin List Event . Refresh Ġ-> Ġcoins List . refresh () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCoin List Event . Retry Ġ-> Ġcoins List . retry () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCoin List Event . Scroll To Top Ġ-> Ġlist State . animate Scroll To Item ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠScaffold Ġ{ ĊĠĠĠĠĠĠĠ ĠCoin s Content ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoins List Ġ= Ġcoins List , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Coin Clicked Ġ= ĠviewModel :: on Coin Clicked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Scroll To Top Clicked Ġ= ĠviewModel :: on Scroll To Top Clicked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Refresh Ġ= ĠviewModel :: on Refresh , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Retry Clicked Ġ= ĠviewModel :: on Retry Clicked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Ġ= Ġcurrency , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll State Ġ= Ġscroll State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist State Ġ= Ġlist State ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ