package Ġutil Ċ Ċ import Ġkotlin ext . js .* Ċ import Ġreact . R State Ċ Ċ /** Ċ Ġ* ĠBy Ġcreating Ġa Ġutility Ġfunction Ġto Ġmap Ġthe Ġcurrent Ġstate Ġwith Ċ Ġ* Ġthe Ġupdated Ġvariables , Ġit Ġremoves Ġthe Ġneed Ġto Ġcreate Ġmultiple Ċ Ġ* Ġbuilder Ġfunctions Ġfor Ġlarger Ġstates Ġacross Ġthe Ġproject . Ċ Ġ* Ċ Ġ* ĠUsing Ġthis Ġfunction Ġwe Ġcan Ġkeep Ġcode Ġclean Ġand Ġefficient . Ċ Ġ* Ġ@ see ĠT ĠâĢĶ ĠThe Ġpurpose Ġof Ġextending ĠR State Ġis Ġto Ġkeep Ġuniform ity Ċ Ġ* Ġacross Ġthe Ġcode . ĠIf Ġwe Ġlook Ġto Ġchange Ġthe Ġtype Ġof Ġcomponent Ġwe Ġcan Ċ Ġ* Ġbe Ġguaranteed Ġthe Ġstate Ġwill Ġwork Ġfor Ġfree . Ċ Ġ* Ċ Ġ* Ġ@ param Ġold State ĠâĢĶ ĠThe Ġcurrent Ġstate Ġvalues Ċ Ġ* Ġ@ param ĠnewState ĠâĢĶ ĠThe Ġnew Ġvalues Ġwe Ġwould Ġlike Ġto Ġapply Ġto Ġthe Ġstate Ċ Ġ* Ċ Ġ* Ġ@ return ĠT ĠâĢĶ ĠThe Ġvalues Ġof Ġold Ġstate Ġplus Ġthe Ġupdated Ġvalues Ġof Ġnew Ġstate . Ċ Ġ*/ Ċ internal Ġinline Ġfun Ġ< T Ġ: ĠR State > ĠsetState ( ĊĠĠĠ Ġold State : ĠT , ĊĠĠĠ ĠnewState : ĠT . () Ġ-> ĠUnit Ċ ): ĠT Ġ= Ġclone ( old State ). apply ( newState )