package Ġapp Ċ Ċ import Ġde . comp e ople . sw n . data . User Ċ import Ġdisplay results . display Results Ċ import Ġreact .* Ċ import Ġuser input . user Input ĊĊ Ċ fun ĠR Builder . app () Ġ= Ġchild ( App :: class ) Ġ{} Ċ Ċ interface ĠApp Props Ġ: ĠR Props Ċ Ċ interface ĠApp State Ġ: ĠR State Ġ{ ĊĠĠĠ Ġvar Ġactive View : ĠApp . Active View ĊĠĠĠ Ġvar Ġuser : ĠUser ĊĠĠĠ Ġvar Ġprem ium : ĠInt Ċ } ĊĊ Ċ class ĠApp Ġ: ĠR Component < App Props , ĠApp State >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpresenter Ġ= ĠPres enter Provider () ĊĊĠĠĠ Ġoverride Ġfun ĠApp State . init () Ġ{ ĊĠĠĠĠĠĠĠ Ġactive View Ġ= ĠActive View . User Input ĊĠĠĠĠĠĠĠ Ġprem ium Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠR Builder . render () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( state . active View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActive View . User Input Ġ-> Ġuser Input ( presenter , Ġstate . user , Ġ:: show Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActive View . Result Ġ-> Ġdisplay Results ( presenter , Ġstate . premium , Ġ:: show Input ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Result ( user : ĠUser , Ġresult : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetState Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . user Ġ= Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . premium Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . active View Ġ= ĠActive View . Result ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Input () Ġ{ ĊĠĠĠĠĠĠĠ ĠsetState Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . active View Ġ= ĠActive View . User Input ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠActive View Ġ{ ĊĠĠĠĠĠĠĠ ĠUser Input , ĠResult ĊĠĠĠ Ġ} Ċ } Ċ