import { StorageOptions } from "jslib-common/models/domain/storageOptions"; import { StateService as BaseStateService } from "jslib-common/services/state.service"; import { Account } from "src/models/account"; import { BrowserComponentState } from "../models/browserComponentState"; import { BrowserGroupingsComponentState } from "../models/browserGroupingsComponentState"; import { BrowserSendComponentState } from "../models/browserSendComponentState"; import { StateService as StateServiceAbstraction } from "./abstractions/state.service"; export class StateService extends BaseStateService implements StateServiceAbstraction { async getBrowserGroupingComponentState( options?: StorageOptions ): Promise { return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions))) ?.groupings; } async setBrowserGroupingComponentState( value: BrowserGroupingsComponentState, options?: StorageOptions ): Promise { const account = await this.getAccount( this.reconcileOptions(options, this.defaultInMemoryOptions) ); account.groupings = value; await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions)); } async getBrowserCipherComponentState(options?: StorageOptions): Promise { return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions))) ?.ciphers; } async setBrowserCipherComponentState( value: BrowserComponentState, options?: StorageOptions ): Promise { const account = await this.getAccount( this.reconcileOptions(options, this.defaultInMemoryOptions) ); account.ciphers = value; await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions)); } async getBrowserSendComponentState(options?: StorageOptions): Promise { return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions))) ?.send; } async setBrowserSendComponentState( value: BrowserSendComponentState, options?: StorageOptions ): Promise { const account = await this.getAccount( this.reconcileOptions(options, this.defaultInMemoryOptions) ); account.send = value; await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions)); } async getBrowserSendTypeComponentState(options?: StorageOptions): Promise { return (await this.getAccount(this.reconcileOptions(options, this.defaultInMemoryOptions))) ?.sendType; } async setBrowserSendTypeComponentState( value: BrowserComponentState, options?: StorageOptions ): Promise { const account = await this.getAccount( this.reconcileOptions(options, this.defaultInMemoryOptions) ); account.sendType = value; await this.saveAccount(account, this.reconcileOptions(options, this.defaultInMemoryOptions)); } }