UNPKG

portal-www

Version:

Nova Portal Website. Based on Next starter by Ueno

59 lines (47 loc) 1.42 kB
import { action, observable, extendObservable, computed, makeObservable } from 'mobx'; import { IClaim, ITransaction } from 'typings'; export default class Claims { private authentication: any; constructor({ claims = {} }: any, authentication: any) { extendObservable(this, claims); this.authentication = authentication; this.transaction = undefined; makeObservable(this, { selectedClaims: observable, transaction: observable, totalCharge: computed, addClaim: action, findClaim: action, clearClaims: action, reset: action, }); } selectedClaims: IClaim[] = []; transaction: ITransaction | undefined = undefined; get totalCharge() { return this.selectedClaims.reduce((prev, claim) => prev + claim.totalCharge, 0); } addClaim(claim: IClaim) { const index = this.selectedClaims.findIndex( (c: IClaim) => c.claimNumber === claim.claimNumber && c.dueDate === claim.dueDate, ); if (index !== -1) { // replace this.selectedClaims.splice(index, 1); return; } this.selectedClaims.push(claim); } findClaim(claim: IClaim) { return this.selectedClaims.find( (c: IClaim) => c.claimNumber === claim.claimNumber && c.dueDate === claim.dueDate, ); } clearClaims() { this.selectedClaims = []; } reset() { this.selectedClaims = []; this.transaction = undefined; } }