1- import type { BackgroundMessage , CommentDraft , CommentSpot } from '../lib/enhancer'
1+ import type { CommentDraft , CommentEvent , CommentSpot } from '../lib/enhancer'
22import { JsonMap } from '../lib/jsonmap'
33
44interface Tab {
@@ -15,29 +15,32 @@ interface CommentState {
1515 drafts : [ number , CommentDraft ] [ ]
1616}
1717
18- const _states = new JsonMap < TabAndSpot , CommentState > ( )
19-
20- browser . runtime . onMessage . addListener ( ( message : BackgroundMessage , sender ) => {
21- if ( message . action === 'COMMENT_EVENT' && sender . tab ?. id && sender . tab ?. windowId ) {
18+ const states = new JsonMap < TabAndSpot , CommentState > ( )
19+ browser . runtime . onMessage . addListener ( ( message : CommentEvent , sender ) => {
20+ if (
21+ ( message . type === 'ENHANCED' || message . type === 'DESTROYED' ) &&
22+ sender . tab ?. id &&
23+ sender . tab ?. windowId
24+ ) {
2225 const tab : Tab = {
2326 tabId : sender . tab . id ,
2427 windowId : sender . tab . windowId ,
2528 }
2629
2730 const tabAndSpot : TabAndSpot = {
28- spot : message . event . spot ,
31+ spot : message . spot ,
2932 tab,
3033 }
3134
32- if ( message . event . type === 'ENHANCED' ) {
35+ if ( message . type === 'ENHANCED' ) {
3336 const commentState : CommentState = {
3437 drafts : [ ] ,
35- spot : message . event . spot ,
38+ spot : message . spot ,
3639 tab,
3740 }
38- _states . set ( tabAndSpot , commentState )
39- } else if ( message . event . type === 'DESTROYED' ) {
40- _states . delete ( tabAndSpot )
41+ states . set ( tabAndSpot , commentState )
42+ } else if ( message . type === 'DESTROYED' ) {
43+ states . delete ( tabAndSpot )
4144 }
4245 }
4346} )
0 commit comments