/** Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠC es ar ĠVal iente Ġ& ĠCore y ĠSh aw Ċ Ġ* Ċ Ġ* Ġhttps :// github . com / C es ar Val iente Ċ Ġ* Ġhttps :// github . com / co sh aw Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ces ar val iente . k un id irectional . store . reducer Ċ Ċ import Ġcom . ces ar val iente . k un id irectional . store . Item Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Re order Items Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Update Color Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Update Favorite Action Ċ import Ġcom . ces ar val iente . k un id irectional . store . Update Action . Update Item Action Ċ Ċ object ĠUpdate Reducer Ġ: ĠRed ucer < Update Action >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġreduce Items Collection ( action : ĠUpdate Action , Ġcurrent Items : ĠList < Item >): ĠList < Item > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRe order Items Action Ġ-> Ġaction . items ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . reduce Items Collection ( action , Ġcurrent Items ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshould Reduce Item ( action : ĠUpdate Action , Ġcurrent Item : ĠItem ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Item Action Ġ-> Ġaction . local Id Ġ== Ġcurrent Item . local Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Favorite Action Ġ-> Ġaction . local Id Ġ== Ġcurrent Item . local Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Color Action Ġ-> Ġaction . local Id Ġ== Ġcurrent Item . local Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġchange Item Fields ( action : ĠUpdate Action , Ġcurrent Item : ĠItem ): ĠItem Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Item Action Ġ-> Ġcurrent Item . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġaction . text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġaction . color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Favorite Action Ġ-> Ġcurrent Item . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite Ġ= Ġaction . favorite ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUpdate Color Action Ġ-> Ġcurrent Item . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġaction . color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcurrent Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ