(payload)
| 112 | } |
| 113 | |
| 114 | export function handleStreamEvent(payload) { |
| 115 | log('Handling stream event:', payload.type, payload); |
| 116 | |
| 117 | switch (payload.type) { |
| 118 | case 'stream-connection': |
| 119 | addConnection({ |
| 120 | id: payload.connectionId, |
| 121 | url: payload.url, |
| 122 | frameUrl: payload.frameUrl, |
| 123 | isIframe: payload.isIframe, |
| 124 | source: payload.source || 'unknown', |
| 125 | status: 'connecting', |
| 126 | createdAt: payload.timestamp, |
| 127 | messages: [] |
| 128 | }); |
| 129 | log('Created connection:', payload.connectionId, payload.url); |
| 130 | selectConnection(payload.connectionId); |
| 131 | break; |
| 132 | |
| 133 | case 'stream-open': |
| 134 | updateConnectionStatus(payload.connectionId, 'open'); |
| 135 | log('Connection opened:', payload.connectionId); |
| 136 | renderConnectionList(); |
| 137 | break; |
| 138 | |
| 139 | case 'stream-message': |
| 140 | addMessage(payload.connectionId, { |
| 141 | id: payload.messageId, |
| 142 | eventType: payload.eventType, |
| 143 | data: payload.data, |
| 144 | lastEventId: payload.lastEventId, |
| 145 | timestamp: payload.timestamp |
| 146 | }); |
| 147 | log('Added message #' + payload.messageId + ' to connection:', payload.connectionId); |
| 148 | renderConnectionList(); |
| 149 | if (state.selectedConnectionId === payload.connectionId && callbacks.renderMessageList) { |
| 150 | callbacks.renderMessageList(); |
| 151 | } |
| 152 | break; |
| 153 | |
| 154 | case 'stream-error': |
| 155 | updateConnectionStatus(payload.connectionId, 'error'); |
| 156 | renderConnectionList(); |
| 157 | break; |
| 158 | |
| 159 | case 'stream-close': |
| 160 | updateConnectionStatus(payload.connectionId, 'closed'); |
| 161 | renderConnectionList(); |
| 162 | break; |
| 163 | } |
| 164 | } |
| 165 | |
| 166 | // Re-export state functions for use in this module |
| 167 | function setSelectedConnection(connectionId) { |
nothing calls this directly
no test coverage detected