package Ġio . e ug enet he dev . ta ig am obile . ui . screens . kan ban Ċ Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . lifecycle . view model . compose . viewModel Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġio . e ug enet he dev . ta ig am obile . domain . entities .* Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . utils . Loading Result Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . components . app bars . Project AppBar Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . components . loaders . Circular Loader Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . screens . main . Routes Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . theme . Ta iga Mobile Theme Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . utils . navigate To Create Task Screen Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . utils . navigate To Task Screen Ċ import Ġio . e ug enet he dev . ta ig am obile . ui . utils . subscribe OnError Ċ Ċ @ Composable Ċ fun ĠK an ban Screen ( ĊĠĠĠ Ġnav Controller : ĠNav Controller , ĊĠĠĠ ĠonError : Ġ@ Composable Ġ( message : ĠInt ) Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ{ ĊĠĠĠ Ġval ĠviewModel : ĠK an ban ViewModel Ġ= ĠviewModel () ĊĠĠĠ ĠLa unched Effect ( Unit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . on Open () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠprojectName Ġby ĠviewModel . projectName . collect As State () ĊĊĠĠĠ Ġval Ġsw im lan es Ġby ĠviewModel . sw im lan es . collect As State () ĊĠĠĠ Ġsw im lan es . subscribe OnError ( onError ) ĊĊĠĠĠ Ġval Ġstatuses Ġby ĠviewModel . statuses . collect As State () ĊĠĠĠ Ġstatuses . subscribe OnError ( onError ) ĊĊĠĠĠ Ġval Ġteam Ġby ĠviewModel . team . collect As State () ĊĠĠĠ Ġteam . subscribe OnError ( onError ) ĊĊĠĠĠ Ġval Ġstories Ġby ĠviewModel . stories . collect As State () ĊĠĠĠ Ġstories . subscribe OnError ( onError ) ĊĊĠĠĠ Ġval Ġselected Sw im lane Ġby ĠviewModel . selected Sw im lane . collect As State () ĊĊĠĠĠ ĠK an ban Screen Content ( ĊĠĠĠĠĠĠĠ ĠprojectName Ġ= ĠprojectName , ĊĠĠĠĠĠĠĠ ĠisLoading Ġ= ĠlistOf ( sw im lan es , Ġteam , Ġstories ). any Ġ{ Ġit Ġis ĠLoading Result Ġ}, ĊĠĠĠĠĠĠĠ Ġstatuses Ġ= Ġstatuses . data . or Empty (), ĊĠĠĠĠĠĠĠ Ġstories Ġ= Ġstories . data . or Empty (), ĊĠĠĠĠĠĠĠ Ġteam Ġ= Ġteam . data . or Empty (), ĊĠĠĠĠĠĠĠ Ġsw im lan es Ġ= Ġsw im lan es . data . or Empty (), ĊĠĠĠĠĠĠĠ Ġselect Sw im lane Ġ= ĠviewModel :: select Sw im lane , ĊĠĠĠĠĠĠĠ Ġselected Sw im lane Ġ= Ġselected Sw im lane , ĊĠĠĠĠĠĠĠ Ġnavigate To Story Ġ= Ġ{ Ġid , Ġref Ġ-> Ġnav Controller . navigate To Task Screen ( id , ĠCommon Task Type . User Story , Ġref ) Ġ}, ĊĠĠĠĠĠĠĠ Ġon Title Click Ġ= Ġ{ Ġnav Controller . navigate ( Routes . projects Selector ) Ġ}, ĊĠĠĠĠĠĠĠ Ġnavigate Back Ġ= Ġnav Controller :: pop Back Stack , ĊĠĠĠĠĠĠĠ Ġnavigate To Create Task Ġ= Ġ{ Ġstatus Id , Ġsw im lane Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate To Create Task Screen ( Common Task Type . User Story , Ġstatus Id Ġ= Ġstatus Id , Ġsw im lane Id Ġ= Ġsw im lane Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ fun ĠK an ban Screen Content ( ĊĠĠĠ ĠprojectName : ĠString , ĊĠĠĠ ĠisLoading : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġstatuses : ĠList < Status > Ġ= Ġempty List (), ĊĠĠĠ Ġstories : ĠList < Common Task Extended > Ġ= Ġempty List (), ĊĠĠĠ Ġteam : ĠList < User > Ġ= Ġempty List (), ĊĠĠĠ Ġsw im lan es : ĠList < Sw im lane ?> Ġ= Ġempty List (), ĊĠĠĠ Ġselect Sw im lane : Ġ( Sw im lane ?) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġselected Sw im lane : ĠSw im lane ? Ġ= Ġnull , ĊĠĠĠ Ġnavigate To Story : Ġ( id : ĠLong , Ġref : ĠInt ) Ġ-> ĠUnit Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġ}, ĊĠĠĠ Ġon Title Click : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġnavigate Back : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġnavigate To Create Task : Ġ( status Id : ĠLong , Ġsw in lan ae Id : ĠLong ?) Ġ-> ĠUnit Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġ} Ċ ) Ġ= ĠColumn ( ĊĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize (), ĊĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Start Ċ ) Ġ{ ĊĠĠĠ ĠProject AppBar ( ĊĠĠĠĠĠĠĠ ĠprojectName Ġ= ĠprojectName , ĊĠĠĠĠĠĠĠ Ġon Title Click Ġ= Ġon Title Click , ĊĠĠĠĠĠĠĠ Ġnavigate Back Ġ= Ġnavigate Back ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġif Ġ( isLoading ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCircular Loader () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠK an ban Board ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatuses Ġ= Ġstatuses , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstories Ġ= Ġstories , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġteam Ġ= Ġteam , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsw im lan es Ġ= Ġsw im lan es , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Sw im lane Ġ= Ġselect Sw im lane , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Sw im lane Ġ= Ġselected Sw im lane , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Story Ġ= Ġnavigate To Story , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Create Task Ġ= Ġnavigate To Create Task ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview ( show Background Ġ= Ġtrue ) Ċ @ Composable Ċ fun ĠK an ban Screen Preview () Ġ= ĠTa iga Mobile Theme Ġ{ ĊĠĠĠ ĠK an ban Screen Content ( ĊĠĠĠĠĠĠĠ ĠprojectName Ġ= Ġ" Cool Ġproject " ĊĠĠĠ Ġ) Ċ } Ċ