/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠV ital iy ĠZ ar ub in Ċ Ġ* Ċ Ġ* ĠLicensed Ġ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 . key gen qt . k chat . modules . user . chat . ui . compose . view Chat Ċ Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . lazy . remember Lazy List State Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Arrow Back Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . remember Coroutine Scope Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġcom . google . ac comp an ist . in sets . navigation Bar sWith I me Padding Ċ import Ġcom . key gen qt . k chat . data . mock .* Ċ import Ġcom . key gen qt . k chat . data . models . Chat Model Ċ import Ġcom . key gen qt . k chat . modules . common . ui . compose . Main Sca ffold Ċ import Ġcom . key gen qt . k chat . modules . user . chat . ui . events . View Chat Events Ċ import Ġkotlinx . coroutines . launch Ċ Ċ @ Composable Ċ fun ĠView Chat Body ( ĊĠĠĠ Ġmodel : ĠChat Model , ĊĠĠĠ Ġon Event : Ġ( View Chat Events ) Ġ-> ĠUnit Ġ= Ġ{}, Ċ ) Ġ{ ĊĠĠĠ Ġval Ġscroll State Ġ= Ġremember Lazy List State () ĊĠĠĠ Ġval Ġscope Ġ= Ġremember Coroutine Scope () ĊĊĠĠĠ ĠMain Sca ffold ( ĊĠĠĠĠĠĠĠ Ġicon Ġ= ĠIcons . Filled . Arrow Back , ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġmodel . name , ĊĠĠĠĠĠĠĠ Ġnavigation Icon OnClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Event ( View Chat Events . Navigate Back ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessages ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessages Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Message Model 1 (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Message Model 2 (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Message Model 3 (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Message Model 4 (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Message Model 5 (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Message Model 6 (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . C yan ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll State Ġ= Ġscroll State ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser Input ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Message Sent Ġ= Ġ{ Ġcontent Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset Scroll Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll State . scrollTo Item ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUse Ġnavigation Bar sWith I me Padding (), Ġto Ġmove Ġthe Ġinput Ġpanel Ġabove Ġboth Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnavigation Ġbar , Ġand Ġon - screen Ġkeyboard Ġ( IME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . navigation Bar sWith I me Padding (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ