Skip to content

Commit c3a07a5

Browse files
Export SessionController
1 parent 38a8257 commit c3a07a5

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/controllers/SessionController.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,9 @@ class SessionController implements SLWebSocketEventListener {
7676
}
7777

7878
sendChatMessage(message: string) {
79-
if (!this.authToken) { return; }
79+
if (!this.authToken) { return console.error("Couldn't send chat message due to missing auth token."); }
80+
if (this.sessionState != 'ready') { return console.error("Couldn't send chat message due to session state not being ready."); }
81+
if (this.assistantState != 'idle') { return console.error("Couldn't send chat message due to assistant state not being idle."); }
8082
this.getWebSocket().slSend('send-message', this.authToken, { message: message });
8183
this.addChatMessage({
8284
id: UUIDUtilities.unsecureUUID(),
@@ -89,11 +91,11 @@ class SessionController implements SLWebSocketEventListener {
8991
}
9092

9193
getTablePage(tableID: string, offset: number, count: number) {
92-
if (!this.authToken) { return; }
94+
if (!this.authToken) { return console.error("Couldn't get table page due to missing auth token."); }
9395
this.getWebSocket().slSend('get-table-page', this.authToken, { table_id: tableID, offset: offset, count: count });
9496
}
9597

96-
getWebSocket(): SLWebSocket {
98+
private getWebSocket(): SLWebSocket {
9799
if (SLWebSocket.instance) {
98100
return SLWebSocket.instance;
99101
} else {
@@ -115,7 +117,7 @@ class SessionController implements SLWebSocketEventListener {
115117
}
116118
}
117119

118-
onMessageReceived(json: any) {
120+
private onMessageReceived(json: any) {
119121
const id = json['id'];
120122
const content = json['content'];
121123
const sender = json['sender'];
@@ -126,7 +128,7 @@ class SessionController implements SLWebSocketEventListener {
126128
this.addChatMessage({ id: id, sender: sender, content: content, isEphemeral: false });
127129
}
128130

129-
onSessionStateUpdated(json: any) {
131+
private onSessionStateUpdated(json: any) {
130132
const sessionState: SessionState = json['session_state'];
131133
const error: string | null = json['error'];
132134
if (!sessionState) { return; }
@@ -136,6 +138,7 @@ class SessionController implements SLWebSocketEventListener {
136138
this.listeners.forEach((listener) => listener.onSessionStateUpdated?.(sessionState, error));
137139
}
138140

141+
private onAssistantStateUpdated(json: any) {
139142
const assistantState: AssistantState = json['assistant_reply_state'];
140143
if (!assistantState) { return; }
141144
this.assistantState = assistantState;
@@ -163,19 +166,19 @@ class SessionController implements SLWebSocketEventListener {
163166
});
164167
}
165168

166-
onTablePageReceived(json: any) {
169+
private onTablePageReceived(json: any) {
167170
const page = json.page
168171
if (!isTablePage(page)) { return }
169172
this.listeners.forEach((listener) => listener.onTablePageReceived?.(page));
170173
}
171174

172-
addChatMessage(message: ChatMessage) {
175+
private addChatMessage(message: ChatMessage) {
173176
this.chatMessages = this.chatMessages.filter((chatMessage) => !chatMessage.isEphemeral);
174177
this.chatMessages.push(message);
175178
this.listeners.forEach((listener) => listener.onChatMessagesUpdated?.(this.chatMessages));
176179
}
177180

178-
onReconnectWebSocket(): Promise<void> {
181+
private onReconnectWebSocket(): Promise<void> {
179182
return Promise.resolve(); // TODO: Implement
180183
}
181184
}

src/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,6 @@ class Superluminal extends React.Component<Props, State> {
5454
}
5555
}
5656

57+
export { SessionController };
58+
5759
export default Superluminal;

0 commit comments

Comments
 (0)