package Ġorg . kotlin academy . views Ċ Ċ import Ġkotlinx . html . DIV Ċ import Ġkotlinx . html . id Ċ import Ġkotlinx . html . js . onClick Function Ċ import Ġorg . kotlin academy . common .* Ċ import Ġorg . kotlin academy . data .* Ċ import Ġorg . kotlin academy . ke bab Case Ċ import Ġreact . R Builder Ċ import Ġreact . React Element Ċ import Ġreact . dom .* Ċ Ċ fun ĠR Builder . news ListView ( news : ĠList < News >): ĠReact Element ? Ġ= Ġdiv ( classes Ġ= Ġ" list - center ") Ġ{ ĊĠĠĠ Ġfor Ġ( n Ġin Ġnews ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( n ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArticle Ġ-> Ġarticle Card ( n ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInfo Ġ-> Ġinfo Card ( n ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠP uzz ler Ġ-> Ġp uzz ler Card ( n ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠR Builder . pro positions ListView ( news : ĠList < News >, Ġaccept Info : Ġ( Int ) Ġ-> ĠUnit , Ġreject Info : Ġ( Int ) Ġ-> ĠUnit , Ġaccept P uzz ler : Ġ( Int ) Ġ-> ĠUnit , Ġreject P uzz ler : Ġ( Int ) Ġ-> ĠUnit ): ĠReact Element ? Ġ= Ġdiv ( classes Ġ= Ġ" list - center ") Ġ{ ĊĠĠĠ Ġfor Ġ( n Ġin Ġnews ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( n ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInfo Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Card ( n ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Button (" Accept ", ĠonClick Ġ= Ġ{ Ġaccept Info ( n . id ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Button (" Reject ", ĠonClick Ġ= Ġ{ Ġreject Info ( n . id ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠP uzz ler Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp uzz ler Card ( n ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Button (" Accept ", ĠonClick Ġ= Ġ{ Ġaccept P uzz ler ( n . id ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Button (" Reject ", ĠonClick Ġ= Ġ{ Ġreject P uzz ler ( n . id ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder < DIV >. article Card ( article : ĠArticle ) Ġ{ ĊĠĠĠ Ġa Action ( classes Ġ= Ġ" article Ġdefault - font ", Ġhref Ġ= Ġarticle . url , Ġcategory Ġ= Ġ" article ", Ġextra Ġ= Ġarticle . title . ke bab Case ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" article - card ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" article - frame ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard Image ( article . imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh 3 ( classes Ġ= Ġ" article - title ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ article . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" main - text ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ article . subtitle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" news - icons - list ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtwitter Share ("${ article . title } Ġby ĠKotlin ĠA cademy Ġ${ article . url . or Empty () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfacebook Share ( article . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Icon ( article ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder < DIV >. pu zz ler Card ( pu zz ler : ĠP uzz ler ) Ġ{ ĊĠĠĠ Ġval Ġbutton Id Ġ= Ġrandom Id () ĊĠĠĠ Ġval Ġanswer Id Ġ= Ġrandom Id () ĊĊĠĠĠ Ġjump Tag ( name Ġ= Ġp uzz ler . tag ) ĊĠĠĠ Ġdiv ( classes Ġ= Ġ" article - card ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" article - frame ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh 3 ( classes Ġ= Ġ" article - title ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ pu zz ler . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode ( classes Ġ= Ġ" kotlin Ġhl js ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ pu zz ler . question ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh 5 ( classes Ġ= Ġ" main - text Ġbold Ġspace - top ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" What Ġdoes Ġit Ġdisplay ? ĠSome Ġpossib ilities :" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" main - text Ġmultiline ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ pu zz ler . answers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" answer Ġspace - top Ġhidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ{ Ġid Ġ= Ġanswer Id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh 5 ( classes Ġ= Ġ" main - text Ġbold ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Correct Ġanswer " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" main - text ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ pu zz ler . correct Answer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh 5 ( classes Ġ= Ġ" main - text Ġbold ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Explanation " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" main - text Ġmultiline ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ pu zz ler . explanation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton ( classes Ġ= Ġ" mdc - button Ġm dc - button -- raised Ġspace - top ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġbutton Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Function Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ById ( answer Id )?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ById ( button Id )?. hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Event (" pu zz ler ", Ġ" show - answer -$ button Id ", Ġ" Show Ġanswer Ġfor Ġp uzz ler Ġid Ġ$ button Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Show Ġanswer " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Div ( pu zz ler . author , Ġp uzz ler . author Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" news - icons - list ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtwitter Share (" P uzz ler Ġ\" ${ pu zz ler . title }\" Ġon ĠKotlin ĠA cademy Ġportal Ġ\ n ${ pu zz ler . getTag Url () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfacebook Share ( pu zz ler . getTag Url ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecret In Url ?. let Ġ{ Ġsecret Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ( href Ġ= Ġ"# / submit - pu zz ler ? id =${ pu zz ler . id }& secret =$ secret ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg ( classes Ġ= Ġ" news - icon ", Ġsrc Ġ= Ġ" img / edit . png ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder < DIV >. info Card ( info : ĠInfo ) Ġ{ ĊĠĠĠ Ġjump Tag ( name Ġ= Ġinfo . tag ) ĊĠĠĠ Ġa ( classes Ġ= Ġ" article Ġdefault - font ", Ġhref Ġ= Ġinfo . url , Ġtarget Ġ= Ġ"_ blank ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" article - card ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" article - frame ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard Image ( info . imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh 3 ( classes Ġ= Ġ" article - title ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ info . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" main - text Ġmultiline ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ info . description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ( classes Ġ= Ġ" main - text Ġbold Ġspace - top ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Sources " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" main - text Ġmultiline ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ info . sources ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Div ( info . author , Ġinfo . author Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv ( classes Ġ= Ġ" news - icons - list ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtwitter Share (" News Ġ\" ${ info . title }\" Ġon ĠKotlin ĠA cademy Ġportal Ġ\ n ${ info . getTag Url () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfacebook Share ( info . getTag Url ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecret In Url ?. let Ġ{ Ġsecret Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ( href Ġ= Ġ"# / submit - info ? id =${ info . id }& secret =$ secret ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg ( classes Ġ= Ġ" news - icon ", Ġsrc Ġ= Ġ" img / edit . png ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder < DIV >. jump Tag ( name : ĠString ) Ġ{ ĊĠĠĠ Ġa Ġ{ Ġattrs Ġ{ Ġthis . id Ġ= Ġname Ġ} Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder <* >. card Image ( imageUrl : ĠString ) Ġ{ ĊĠĠĠ Ġdiv ( classes Ġ= Ġ" center - text ") Ġ{ ĊĠĠĠĠĠĠĠ Ġimg ( classes Ġ= Ġ" article - image ", Ġsrc Ġ= ĠimageUrl ) Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder < DIV >. author Div ( author : ĠString ?, Ġauthor Url : ĠString ?) Ġ{ ĊĠĠĠ Ġauthor Ġ?: Ġreturn ĊĠĠĠ Ġdiv ( classes Ġ= Ġ" main - text Ġmultiline Ġspace - top ") Ġ{ ĊĠĠĠĠĠĠĠ Ġ+" Author : Ġ" ĊĠĠĠĠĠĠĠ Ġif Ġ( author Url . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ author ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa Action ( href Ġ= Ġauthor Url , Ġcategory Ġ= Ġ" author ", Ġaction Ġ= Ġ" open ", Ġextra Ġ= Ġauthor . ke bab Case ()) Ġ{ Ġ+ author Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder <* >. twitter Share ( text : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġtext As Path Ġ= ĠencodeURIComponent ( text ) ĊĠĠĠ Ġa Action ( href Ġ= Ġ" https :// twitter . com / intent / tweet ? text =$ text As Path ", Ġcategory Ġ= Ġ" twitter ", Ġaction Ġ= Ġ" share ") Ġ{ ĊĠĠĠĠĠĠĠ Ġimg ( classes Ġ= Ġ" news - icon ", Ġsrc Ġ= Ġ" img / twitter _ icon . png ") Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder <* >. facebook Share ( link : ĠString ?) Ġ{ ĊĠĠĠ Ġval Ġlink Ġ= Ġlink ?. take Unless Ġ{ Ġit . isBlank () Ġ} Ġ?: Ġreturn ĊĠĠĠ Ġval Ġlink As Path Ġ= ĠencodeURIComponent ( link ) ĊĠĠĠ Ġa Action ( href Ġ= Ġ" https :// www . facebook . com / sh arer / sh arer . php ? u =$ link As Path % 2 F & amp ; src = sdk pre parse ", Ġcategory Ġ= Ġ" facebook ", Ġaction Ġ= Ġ" share ", Ġextra Ġ= Ġlink ) Ġ{ ĊĠĠĠĠĠĠĠ Ġimg ( classes Ġ= Ġ" news - icon ", Ġsrc Ġ= Ġ" img / facebook _ icon . png ") Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠR DOM Builder <* >. comment Icon ( article : ĠArticle ) Ġ{ ĊĠĠĠ Ġroute Link ("/ feedback /${ article . id }") Ġ{ ĊĠĠĠĠĠĠĠ Ġimg ( classes Ġ= Ġ" news - icon ", Ġsrc Ġ= Ġ" img / talk _ icon . png ") Ġ{} ĊĠĠĠ Ġ} Ċ }