Merge pull request #957 from h3poteto/iss-956

closes #956 Stop user streaming after remove account association
This commit is contained in:
AkiraFukushima 2019-07-11 00:58:44 +09:00 committed by GitHub
commit 47a12a5a5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 6 deletions

View File

@ -175,16 +175,16 @@ export default class Account {
})
}
removeAccount(id: string): Promise<number> {
removeAccount(id: string): Promise<string> {
return new Promise((resolve, reject) => {
this.db.remove(
{
_id: id
},
{ multi: true },
(err, numRemoved) => {
(err, _numRemoved) => {
if (err) return reject(err)
resolve(numRemoved)
resolve(id)
}
)
})

View File

@ -363,8 +363,9 @@ ipcMain.on('update-account', (event: Event, acct: LocalAccount) => {
ipcMain.on('remove-account', (event: Event, id: string) => {
accountManager
.removeAccount(id)
.then(() => {
event.sender.send('response-remove-account')
.then((id) => {
stopUserStreaming(id)
event.sender.send('response-remove-account', id)
})
.catch(err => {
event.sender.send('error-remove-account', err)
@ -493,6 +494,19 @@ ipcMain.on('stop-all-user-streamings', () => {
})
})
/**
* Stop an user streaming in all user streamings.
* @param id specified user id in nedb.
*/
const stopUserStreaming = (id: string) => {
Object.keys(userStreamings).map((key: string) => {
if (key === id && userStreamings[id]) {
userStreamings[id]!.stop()
userStreamings[id] = null
}
})
}
type StreamingSetting = {
account: LocalAccount
useWebsocket: boolean

View File

@ -49,7 +49,7 @@ const actions: ActionTree<AccountState, RootState> = {
ipcRenderer.removeAllListeners('response-remove-account')
reject(err)
})
ipcRenderer.once('response-remove-account', () => {
ipcRenderer.once('response-remove-account', (_id: string) => {
ipcRenderer.removeAllListeners('error-remove-account')
resolve()
})