@@ -22,53 +22,70 @@ export function setupEventListeners(
2222 handleSlashCommandInput
2323) {
2424 // Send button
25- document . getElementById ( 'sendButton' ) . addEventListener ( 'click' , ( ) => sendMessage ( ) ) ;
25+ const sendButton = document . getElementById ( 'sendButton' ) ;
26+ if ( sendButton ) {
27+ sendButton . addEventListener ( 'click' , ( ) => sendMessage ( ) ) ;
28+ }
2629
2730 // Message input - Enter to send, Shift+Enter for new line
2831 const messageInput = document . getElementById ( 'messageInput' ) ;
29- messageInput . addEventListener ( 'keydown' , ( e ) => {
30- // Handle autocomplete navigation
31- if ( handleAutocompleteNavigation ( e ) ) {
32- return ; // Autocomplete handled the event
33- }
34-
35- if ( e . key === 'Enter' && ! e . shiftKey ) {
36- e . preventDefault ( ) ;
37- sendMessage ( ) ;
38- }
39- } ) ;
40-
41- // Auto-resize textarea and handle slash commands
42- messageInput . addEventListener ( 'input' , ( ) => {
43- autoResizeTextarea ( messageInput ) ;
44- handleSlashCommandInput ( ) ;
45- } ) ;
32+ if ( messageInput ) {
33+ messageInput . addEventListener ( 'keydown' , ( e ) => {
34+ // Handle autocomplete navigation
35+ if ( handleAutocompleteNavigation ( e ) ) {
36+ return ; // Autocomplete handled the event
37+ }
4638
47- // Input wrapper click - focus on textarea
48- const inputWrapper = document . querySelector ( '.input-wrapper' ) ;
49- if ( inputWrapper ) {
50- inputWrapper . addEventListener ( 'click' , ( e ) => {
51- // Don't focus if clicking the send button
52- if ( ! e . target . closest ( '.send-button' ) ) {
53- messageInput . focus ( ) ;
39+ if ( e . key === 'Enter' && ! e . shiftKey ) {
40+ e . preventDefault ( ) ;
41+ sendMessage ( ) ;
5442 }
5543 } ) ;
44+
45+ // Auto-resize textarea and handle slash commands
46+ messageInput . addEventListener ( 'input' , ( ) => {
47+ autoResizeTextarea ( messageInput ) ;
48+ handleSlashCommandInput ( ) ;
49+ } ) ;
50+
51+ // Input wrapper click - focus on textarea
52+ const inputWrapper = document . querySelector ( '.input-wrapper' ) ;
53+ if ( inputWrapper ) {
54+ inputWrapper . addEventListener ( 'click' , ( e ) => {
55+ // Don't focus if clicking the send button
56+ if ( ! e . target . closest ( '.send-button' ) ) {
57+ messageInput . focus ( ) ;
58+ }
59+ } ) ;
60+ }
5661 }
5762
5863 // Clear session button
59- document . getElementById ( 'clearSession' ) . addEventListener ( 'click' , ( ) => clearSession ( ) ) ;
64+ const clearSessionBtn = document . getElementById ( 'clearSession' ) ;
65+ if ( clearSessionBtn ) {
66+ clearSessionBtn . addEventListener ( 'click' , ( ) => clearSession ( ) ) ;
67+ }
6068
6169 // Stop talking button
62- document . getElementById ( 'stopTalking' ) . addEventListener ( 'click' , ( ) => stopVoicePlayback ( ) ) ;
70+ const stopTalkingBtn = document . getElementById ( 'stopTalking' ) ;
71+ if ( stopTalkingBtn ) {
72+ stopTalkingBtn . addEventListener ( 'click' , ( ) => stopVoicePlayback ( ) ) ;
73+ }
6374
6475 // Delete all data button
65- document . getElementById ( 'deleteAllData' ) . addEventListener ( 'click' , ( ) => deleteAllData ( ) ) ;
76+ const deleteAllDataBtn = document . getElementById ( 'deleteAllData' ) ;
77+ if ( deleteAllDataBtn ) {
78+ deleteAllDataBtn . addEventListener ( 'click' , ( ) => deleteAllData ( ) ) ;
79+ }
6680
6781 // Model info update
68- document . getElementById ( 'modelSelect' ) . addEventListener ( 'change' , ( e ) => {
69- updateModelInfo ( e . target . value ) ;
70- saveSettings ( ) ;
71- } ) ;
82+ const modelSelect = document . getElementById ( 'modelSelect' ) ;
83+ if ( modelSelect ) {
84+ modelSelect . addEventListener ( 'change' , ( e ) => {
85+ updateModelInfo ( e . target . value ) ;
86+ saveSettings ( ) ;
87+ } ) ;
88+ }
7289}
7390
7491/**
0 commit comments