9
9
REMOVE_LIST_BY_ID ,
10
10
CHANGE_LIST_ORDER ,
11
11
} from './constants'
12
- import { isBackground } from './utils'
12
+ import { isBackground , sendMessage } from './utils'
13
13
14
14
const cache = { lists : null , ops : null }
15
15
let _readingStorage = false
@@ -75,7 +75,7 @@ const saveStorage = _.debounce(async () => {
75
75
cache . ops = compressOps ( cache . ops )
76
76
await browser . storage . local . set ( cache )
77
77
cache . lists = cache . ops = null
78
- await browser . runtime . sendMessage ( { refresh : true } )
78
+ await sendMessage ( { refresh : true } )
79
79
} , 5000 )
80
80
const manager = { }
81
81
// lists modifier (return true if need to add ops)
@@ -136,10 +136,10 @@ const genMethods = isBackground => {
136
136
manager [ method ] = isBackground ? async ( ...args ) => { // for background
137
137
console . debug ( '[list manager] modify list:' , method , ...args )
138
138
await applyChangesToStorage ( method , args )
139
- await browser . runtime . sendMessage ( { listModifed : { method, args} , from : END_BACKGROUND } )
139
+ await sendMessage ( { listModifed : { method, args} , from : END_BACKGROUND } )
140
140
} : async ( ...args ) => { // for front end
141
141
console . debug ( '[list manager] call to modify list:' , name , ...args )
142
- await browser . runtime . sendMessage ( { listModifed : { method, args} , from : END_FRONT } )
142
+ await sendMessage ( { listModifed : { method, args} , from : END_FRONT } )
143
143
}
144
144
} )
145
145
}
@@ -150,22 +150,19 @@ manager.init = async () => {
150
150
if ( _isBackground ) await addEventListener ( END_FRONT , applyChangesToStorage )
151
151
genMethods ( _isBackground )
152
152
}
153
- const receiver = [ ]
154
- manager . receiveBackgroundModified = async lists => {
155
- if ( receiver . includes ( lists ) ) return
156
- receiver . push ( lists )
157
- await addEventListener ( END_BACKGROUND , ( method , args ) => manager . modifiers [ method ] ( lists , args ) )
158
- }
159
153
manager . mapMutations = ( ) => {
160
154
const mutations = { }
161
155
Object . entries ( manager . modifiers ) . forEach ( ( [ method , fn ] ) => {
162
156
mutations [ method ] = ( state , payload ) => fn ( state . lists , payload )
163
157
} )
158
+ mutations . receiveData = ( state , { method, args} ) => {
159
+ manager . modifiers [ method ] ( state . lists , args )
160
+ }
164
161
return mutations
165
162
}
166
163
manager . createVuexPlugin = ( ) => store => {
167
164
addEventListener ( END_BACKGROUND , ( method , args ) => {
168
- store . commit ( method , args )
165
+ store . commit ( 'receiveData' , { method, args} )
169
166
} )
170
167
browser . runtime . onMessage . addListener ( ( { refreshed} ) => {
171
168
if ( refreshed && refreshed . success ) store . dispatch ( 'getLists' )
0 commit comments