Skip to content

Commit 2f41860

Browse files
committed
Refactor around a single event sender.
1 parent f9b6e8e commit 2f41860

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

src/lib/registries.ts

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,33 +101,29 @@ export class EnhancerRegistry {
101101

102102
export class TextareaRegistry {
103103
private textareas = new Map<HTMLTextAreaElement, EnhancedTextarea>()
104-
private onEnhanced?: (textareaInfo: EnhancedTextarea) => void
105-
private onDestroyed?: (textareaInfo: EnhancedTextarea) => void
104+
private sendEvent: (event: CommentEvent) => void = () => {}
106105

107106
setCommentEventSender(sendEvent: (event: CommentEvent) => void): void {
108-
this.onEnhanced = (textareaInfo) =>
109-
sendEvent({
110-
draft: textareaInfo.textarea.value,
111-
spot: textareaInfo.spot,
112-
type: 'ENHANCED',
113-
})
114-
this.onDestroyed = (textareaInfo) =>
115-
sendEvent({
116-
draft: textareaInfo.textarea.value,
117-
spot: textareaInfo.spot,
118-
type: 'DESTROYED',
119-
})
107+
this.sendEvent = sendEvent
120108
}
121109

122110
register<T extends CommentSpot>(textareaInfo: EnhancedTextarea<T>): void {
123111
this.textareas.set(textareaInfo.textarea, textareaInfo)
124-
this.onEnhanced?.(textareaInfo)
112+
this.sendEvent({
113+
draft: textareaInfo.textarea.value,
114+
spot: textareaInfo.spot,
115+
type: 'ENHANCED',
116+
})
125117
}
126118

127119
unregisterDueToModification(textarea: HTMLTextAreaElement): void {
128120
const textareaInfo = this.textareas.get(textarea)
129121
if (textareaInfo) {
130-
this.onDestroyed?.(textareaInfo)
122+
this.sendEvent({
123+
draft: textareaInfo.textarea.value,
124+
spot: textareaInfo.spot,
125+
type: 'DESTROYED',
126+
})
131127
this.textareas.delete(textarea)
132128
}
133129
}

0 commit comments

Comments
 (0)