From 617a9a3cc513397fcc5677b35d3d61b99bd12a30 Mon Sep 17 00:00:00 2001 From: James Chen Date: Wed, 13 Nov 2019 17:24:17 +0800 Subject: [PATCH] feat: Send address db changed event when address store updates any content --- packages/neuron-wallet/src/database/address/dao.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/neuron-wallet/src/database/address/dao.ts b/packages/neuron-wallet/src/database/address/dao.ts index f39c116dca..1943392334 100644 --- a/packages/neuron-wallet/src/database/address/dao.ts +++ b/packages/neuron-wallet/src/database/address/dao.ts @@ -1,3 +1,4 @@ +import { remote } from 'electron' import { AddressType } from 'models/keys/address' import { TransactionsService } from 'services/tx' import CellsService from 'services/cells' @@ -7,6 +8,7 @@ import { OutputStatus } from 'services/tx/params' import { AddressVersion } from './entities/address' import NodeService from 'services/node' import Store from 'models/store' +import AddressDbChangedSubject from 'models/subjects/address-db-changed-subject' export interface Address { walletId: string @@ -183,6 +185,11 @@ export default class AddressDao { } } +const isRenderer = process && process.type === 'renderer' +const addressDbChangedSubject = isRenderer + ? remote.require('./models/subjects/address-db-changed-subject').default.getSubject() + : AddressDbChangedSubject.getSubject() + /// Persist all addresses as array in `addresses/index.json`. class AddressStore { static MODULE_NAME = 'addresses' @@ -196,6 +203,7 @@ class AddressStore { static updateAll(addresses: Address[]) { AddressStore.store.writeSync(AddressStore.ROOT_KEY, addresses) + AddressStore.changed() } static add(addresses: Address[]): Address[] { @@ -224,4 +232,8 @@ class AddressStore { return address } + + static changed() { + addressDbChangedSubject.next("Updated") + } }