package Ġcom . github . jetbrains . rss reader . shared ui Ċ Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . items Indexed Ċ import Ġandroidx . compose . material . Floating ActionButton Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . github . jetbrains . rss reader . app . Feed Action Ċ import Ġcom . github . jetbrains . rss reader . app . Feed Store Ċ import Ġcom . github . jetbrains . rss reader . core . entity . Feed Ċ Ċ @ Composable Ċ fun ĠFeed List ( store : ĠFeed Store ) Ġ{ ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġstore . observe State (). collect As State () ĊĠĠĠĠĠĠĠ Ġval Ġshow Add Dialog Ġ= Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfeed For Delete Ġ= Ġremember < Mutable State < Feed ? >> Ġ{ Ġmutable State Of ( null ) Ġ} ĊĠĠĠĠĠĠĠ ĠFeed ItemList ( feeds Ġ= Ġstate . value . feeds ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeed For Delete . value Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠFloating ActionButton ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Bottom End ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. system NavigationBar sWith I me Padding (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġshow Add Dialog . value Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . align ( Alignment . Center ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Name Ġ= Ġ" ic _ add . xml " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( show Add Dialog . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Feed Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Add Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore . dispatch ( Feed Action . Add ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Add Dialog . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Dismiss Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Add Dialog . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfeed For Delete . value ?. let Ġ{ Ġfeed Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDelete Feed Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeed Ġ= Ġfeed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonDelete Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore . dispatch ( Feed Action . Delete ( feed . source Url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeed For Delete . value Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Dismiss Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeed For Delete . value Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠFeed ItemList ( ĊĠĠĠ Ġfeeds : ĠList < Feed >, ĊĠĠĠ ĠonClick : Ġ( Feed ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠLazy Column Ġ{ ĊĠĠĠĠĠĠĠ Ġitems Indexed ( feeds ) Ġ{ Ġi , Ġfeed Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 0 ) ĠSp acer ( modifier Ġ= ĠModifier . system StatusBar s Height ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFeed Item ( feed ) Ġ{ ĠonClick ( feed ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠFeed Item ( ĊĠĠĠ Ġfeed : ĠFeed , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able ( onClick Ġ= ĠonClick , Ġenabled Ġ= Ġ! feed . is Default ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 6 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFeed Icon ( feed Ġ= Ġfeed ) ĊĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . size ( 1 6 . dp )) ĊĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . body 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġfeed . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . body 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġfeed . desc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ