package Ġreact Ċ Ċ import Ġkotlin . properties .* Ċ import Ġkotlin . reflect .* Ċ Ċ interface ĠReact Component Lifecycle Listener Ġ{ ĊĠĠĠ Ġfun Ġreact Component Will Update () ĊĊĠĠĠ Ġfun Ġreact Component Will Unmount () ĊĊĠĠĠ Ġfun Ġreact Component Will Mount () ĊĊĠĠĠ Ġfun Ġreact Component Did Mount () Ċ } Ċ Ċ interface ĠReact Extension Provider Ġ{ ĊĠĠĠ Ġfun Ġsubscribe ( listener : ĠReact Component Lifecycle Listener ) ĊĠĠĠ Ġfun Ġunsubscribe ( listener : ĠReact Component Lifecycle Listener ) Ċ } Ċ Ċ abstract Ġclass ĠBase React Extension ( val Ġprovider : ĠReact Extension Provider ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlistener Ġ= Ġobject Ġ: ĠReact Component Lifecycle Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreact Component Will Update () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcomponentWill Update () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreact Component Will Unmount () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovider . unsubscribe ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcomponentWill Unmount () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreact Component Will Mount () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcomponentWill Mount () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreact Component Did Mount () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcomponentDidMount () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġprovider . subscribe ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠcomponentWill Update () Ġ{} ĊĊĠĠĠ Ġopen Ġfun ĠcomponentWill Unmount () Ġ{} ĊĊĠĠĠ Ġopen Ġfun ĠcomponentWill Mount () Ġ{} ĊĊĠĠĠ Ġopen Ġfun ĠcomponentDidMount () Ġ{} Ċ } Ċ Ċ abstract Ġclass ĠBase React Extension ReadWrite Property < T >( provider : ĠReact Extension Provider ) Ġ: ĠBase React Extension ( provider ), ĠRead Write Property < Any , ĠT > Ġ{ Ċ Ċ } Ċ Ċ abstract Ġclass ĠBase React Extension ReadOnly Property < T >( provider : ĠReact Extension Provider ) Ġ: ĠBase React Extension ( provider ), ĠReadOnly Property < Any , ĠT > Ġ{ Ċ Ċ } ĊĊ