package Ġorg . kotlin academy . components Ċ Ċ import Ġkotlinx . coroutines . experimental . Default Dispatcher Ċ import Ġorg . kotlin academy . common . getUrl Param Ċ import Ġorg . kotlin academy . common . secret In Url Ċ import Ġorg . kotlin academy . data .* Ċ import Ġorg . kotlin academy . presentation . pu zz ler . P uzz ler Presenter Ċ import Ġorg . kotlin academy . presentation . pu zz ler . P uzz ler View Ċ import Ġorg . kotlin academy . presentation . snippet . Snippet Presenter Ċ import Ġorg . kotlin academy . presentation . snippet . Snippet View Ċ import Ġorg . kotlin academy . resp ositor ies . Manager Repository Impl Ċ import Ġorg . kotlin academy . resp ositor ies . News Repository Impl Ċ import Ġorg . kotlin academy . resp ositor ies . P uzz ler Repository Impl Ċ import Ġorg . kotlin academy . views .* Ċ import Ġreact . R Builder Ċ import Ġreact . R Props Ċ import Ġreact . dom . h 3 Ċ import Ġreact . setState Ċ import Ġkotlin . properties . Deleg ates . observable Ċ Ċ class ĠSubmit P uzz ler Component Ġ: ĠBase Component < R Props , ĠSubmit P uzz ler Component State >(), ĠP uzz ler View Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpresenter Ġby Ġpresenter Ġ{ ĊĠĠĠĠĠĠĠ ĠP uzz ler Presenter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Context Ġ= ĠDefault Dispatcher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠgetUrl Param (" id ") ?. toInt OrNull (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecret Ġ= Ġsecret In Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews Repository Ġ= ĠNews Repository Impl (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager Repository Ġ= ĠManager Repository Impl (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp uzz ler Repository Ġ= ĠP uzz ler Repository Impl () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġloading : ĠBoolean Ġby Ġobservable ( false ) Ġ{ Ġ_, Ġ_, Ġn Ġ-> ĊĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġloading Ġ= Ġn Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠSubmit P uzz ler Component State . init () Ġ{ ĊĠĠĠĠĠĠĠ Ġactual Question Ġ= Ġ" What Ġdoes Ġit Ġdisplay ? ĠSome Ġpossib ilities :" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġpref illed : ĠP uzz ler ? Ġby Ġobservable ( null Ġas ĠP uzz ler ?) Ġ{ Ġ_, Ġ_, Ġn Ġ-> ĊĠĠĠĠĠĠĠ Ġn Ġ?: Ġreturn @ observable ĊĠĠĠĠĠĠĠ ĠsetState Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġn . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= Ġn . level ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Question Ġ= Ġn . code Question ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual Question Ġ= Ġn . actual Question ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanswers Ġ= Ġn . answers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcorrect Answer Ġ= Ġn . correct Answer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexplanation Ġ= Ġn . explanation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġn . author ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Url Ġ= Ġn . author Url ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠR Builder . render () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . loading Ġ== Ġtrue Ġ-> Ġloading View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . show Thank You Page Ġ== Ġtrue Ġ-> Ġthank You View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . error Ġ!= Ġnull Ġ-> Ġerror View ( state . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġka Form Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh 3 Ġ{ Ġ+" Share Ġyour Ġp uzz ler Ġ: D " Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Title ", Ġvalue Ġ= Ġstate . title , Ġlines Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġtitle Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlevel Select Ġ= Ġselect Field View (" Level ", Ġpossib ilities Ġ= ĠlistOf (" Begin ner ", Ġ" Advanced ", Ġ" Ex pert "), Ġinitial Ġ= Ġstate . level ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Code Ġquestion ", Ġvalue Ġ= Ġstate . code Question ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġcode Question Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Actual Ġquestion ", Ġvalue Ġ= Ġstate . actual Question , Ġlines Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġactual Question Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Give Ġsome Ġpossible Ġanswers ", Ġvalue Ġ= Ġstate . answers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġanswers Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Correct Ġanswer ", Ġvalue Ġ= Ġstate . correct Answer , Ġlines Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġcorrect Answer Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Explanation ", Ġvalue Ġ= Ġstate . explanation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġexplanation Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Your Ġname ", Ġvalue Ġ= Ġstate . author , Ġlines Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġauthor Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field View (" Your Ġurl ", Ġvalue Ġ= Ġstate . author Url , Ġlines Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġauthor Url Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Button (" Submit ", ĠonClick Ġ= Ġfun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= ĠP uzz ler Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġstate . title Ġ?: Ġreturn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= Ġlevel Select . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Question Ġ= Ġstate . actual Question Ġ?: Ġreturn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Question Ġ= Ġstate . code Question Ġ?: Ġreturn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswers Ġ= Ġstate . answers Ġ?: Ġreturn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorrect Answer Ġ= Ġstate . correct Answer Ġ?: Ġreturn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexplanation Ġ= Ġstate . explanation Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġstate . author , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Url Ġ= Ġstate . author Url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Submit Clicked ( info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġback To News And Show Success () Ġ{ ĊĠĠĠĠĠĠĠ ĠsetState Ġ{ Ġshow Thank You Page Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġback After Delay ( millis Ġ= Ġ 3 _ 0 0 0 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠSubmit P uzz ler Component State Ġ: ĠBase State Ġ{ ĊĠĠĠ Ġvar Ġtitle : ĠString ? ĊĠĠĠ Ġvar Ġlevel : ĠString ? ĊĠĠĠ Ġvar Ġcode Question : ĠString ? ĊĠĠĠ Ġvar Ġactual Question : ĠString ? ĊĠĠĠ Ġvar Ġanswers : ĠString ? ĊĠĠĠ Ġvar Ġcorrect Answer : ĠString ? ĊĠĠĠ Ġvar Ġexplanation : ĠString ? ĊĠĠĠ Ġvar Ġauthor : ĠString ? ĊĠĠĠ Ġvar Ġauthor Url : ĠString ? ĊĠĠĠ Ġvar Ġloading : ĠBoolean ? ĊĠĠĠ Ġvar Ġshow Thank You Page : ĠBoolean ? Ċ }