package Ġcom . ko be iss idev . jet pack compose poke dex . ui . screen . detail . section Ċ Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . offset Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Card Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . clip Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . h ilt . navigation . compose . h ilt ViewModel Ċ import Ġandroidx . paging . Experimental Paging Api Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġcom . google . ac comp an ist . pager . Experimental Pager Api Ċ import Ġcom . ko be iss idev . jet pack compose poke dex . data . model . pokemon . Pokemon Ċ import Ġcom . ko be iss idev . jet pack compose poke dex . data . model . supp lement ary . Palette Ċ import Ġcom . ko be iss idev . jet pack compose poke dex . ui . comp osable . Loading Layout Ċ import Ġcom . ko be iss idev . jet pack compose poke dex . ui . screen . Main ViewModel Ċ import Ġcom . ko be iss idev . jet pack compose poke dex . ui . screen . detail . section . tab .* Ċ import Ġcom . ko be iss idev . jet pack compose poke dex . util . on StateChanged Ċ import Ġtim ber . log . Tim ber Ċ Ċ @ Experimental Paging Api Ċ @ Experimental Co il Api Ċ @ Experimental Pager Api Ċ @ Composable Ċ internal Ġfun ĠInfo Card ( ĊĠĠĠ Ġpokemon : ĠPokemon , ĊĠĠĠ Ġpalette : ĠPalette , ĊĠĠĠ ĠviewModel : ĠMain ViewModel Ġ= Ġh ilt ViewModel (), Ċ ) Ġ{ ĊĠĠĠ Ġval Ġspecies Result Ġby ĠviewModel . species Flow . collect As State () ĊĠĠĠ Ġval Ġevolution Result Ġby ĠviewModel . e volution Flow . collect As State () ĊĠĠĠ Ġ// ĠAdd Ġall Ġtabs Ġthat Ġare Ġrequired . ĊĠĠĠ Ġval Ġtabs Ġ= Ġmutable ListOf < Pair < Tabs , Ġ@ Composable Ġ() Ġ-> ĠUnit >> (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġspecies Result . on StateChanged ( on Loading Ġ= Ġ{ ĠLoading Layout () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Tabs . About Ġto Ġ{ ĠAbout Tab ( pokemon Ġ= Ġpokemon , Ġpalette Ġ= Ġpalette ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd ( Tabs . Base Stats Ġto Ġ{ ĠStats Tab ( pokemon Ġ= Ġpokemon , Ġpalette Ġ= Ġpalette ) Ġ}) ĊĠĠĠĠĠĠĠ Ġevolution Result . on StateChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Loading Ġ= Ġ{ ĠLoading Layout () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Failure Ġ= Ġ{ ĠTim ber . e ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġevolution Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! e volution . chain . e vol ves To . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Tabs . E volution Ġto Ġ{ ĠE volution Tab ( palette Ġ= Ġpalette ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! pokemon . moves . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Tabs . Moves Ġto Ġ{ ĠMov es Tab ( pokemon Ġ= Ġpokemon , Ġpalette Ġ= Ġpalette ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset ( y Ġ= Ġ 1 6 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCard ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( size Ġ= Ġ 2 0 . dp )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġpalette . backgroundColor . as Compose Color , ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInfo Tab Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġpalette . backgroundColor . as Compose Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextColor Ġ= Ġpalette . title TextColor . as Compose Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtabs Ġ= Ġtabs . to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }