package Ġcom . cost ular . atom tasks . ui . components Ċ Ċ import Ġandroidx . compose . foundation . layout . Arrange ment Ċ import Ġandroidx . compose . foundation . layout . Padding Values Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . Lazy List State Ċ import Ġandroidx . compose . foundation . lazy . items Ċ import Ġandroidx . compose . foundation . lazy . remember Lazy List State Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . air bnb . lott ie . compose . Lot tie Animation Ċ import Ġcom . air bnb . lott ie . compose . Lot tie Composition Spec Ċ import Ġcom . air bnb . lott ie . compose . animate Lot tie Composition As State Ċ import Ġcom . air bnb . lott ie . compose . remember Lot tie Composition Ċ import Ġcom . cost ular . atom tasks . R Ċ import Ġcom . cost ular . atom tasks . domain . model . Task Ċ import Ġcom . cost ular . atom tasks . ui . theme . App Theme Ċ Ċ @ Composable Ċ fun ĠTask List ( ĊĠĠĠ Ġtasks : ĠList < Task >, ĊĠĠĠ ĠonClick : Ġ( Task ) Ġ-> ĠUnit , ĊĠĠĠ Ġon Mark Task : Ġ( taskId : ĠLong , Ġis Done : ĠBoolean ) Ġ-> ĠUnit , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġlist State : ĠLazy List State Ġ= Ġremember Lazy List State (), ĊĠĠĠ Ġpadding : ĠPadding Values Ġ= ĠPadding Values ( 0 . dp ), Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( tasks . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠEmpty ( modifier . padding ( App Theme . dim ens . content Margin )) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠLazy Column ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġlist State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Padding Ġ= Ġpadding , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . spaced By ( 8 . dp ), ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems ( tasks ) Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTask Card ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtask . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Mark Ġ= Ġ{ Ġon Mark Task ( task . id , Ġ! task . is Done ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Open Ġ= Ġ{ ĠonClick ( task ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreminder Ġ= Ġtask . reminder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Finished Ġ= Ġtask . is Done , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠEmpty ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcomposition Ġby Ġremember Lot tie Composition ( Lot tie Composition Spec . Raw Res ( R . raw . empty )) ĊĠĠĠ Ġval Ġprogress Ġby Ġanimate Lot tie Composition As State ( ĊĠĠĠĠĠĠĠ Ġcomposition , ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠL ot tie Animation ( ĊĠĠĠĠĠĠĠ Ġcomposition , ĊĠĠĠĠĠĠĠ Ġprogress , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠ Ġ) Ċ } Ċ