add async text messages
This commit is contained in:
parent
a7253ebf40
commit
4a24727131
5 changed files with 89 additions and 25 deletions
|
|
@ -8,7 +8,7 @@ interface RenderMessage {
|
|||
content: string;
|
||||
context: string;
|
||||
subContext: string;
|
||||
modifiers: string;
|
||||
modifier: string;
|
||||
time: string;
|
||||
id: string;
|
||||
}
|
||||
|
|
@ -66,11 +66,17 @@ const receiveMessage = (message: string): void => {
|
|||
}
|
||||
|
||||
const parsed: RenderMessage = JSON.parse(message);
|
||||
console.log('received message', parsed);
|
||||
if (parsed.modifier === "sf") {
|
||||
backgroundMitt.emit('message-res', parsed);
|
||||
} else if (parsed.modifier === "ai"){
|
||||
console.log('ai message')
|
||||
backgroundMitt.emit('ipc-renderer', {
|
||||
endpoint: 'render-message',
|
||||
message: parsed
|
||||
});
|
||||
}
|
||||
|
||||
backgroundMitt.emit('ipc-renderer', {
|
||||
endpoint: 'render-message',
|
||||
message: parsed
|
||||
});
|
||||
};
|
||||
|
||||
export const sendMessage = (content: TextMessage | Buffer) => {
|
||||
|
|
@ -81,6 +87,23 @@ export const sendMessage = (content: TextMessage | Buffer) => {
|
|||
}
|
||||
}
|
||||
|
||||
const asyncSend = (_event, payload: any): Promise<RenderMessage> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
backgroundMitt.once('message-res', (res: RenderMessage) => {
|
||||
console.log(res)
|
||||
if (res.content) {
|
||||
resolve(res);
|
||||
} else {
|
||||
reject()
|
||||
}
|
||||
|
||||
});
|
||||
socket.send(JSON.stringify(payload));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Run every time we want to connect to backend.
|
||||
export const initSession = () => {
|
||||
|
||||
|
|
@ -100,6 +123,10 @@ export const initSession = () => {
|
|||
ipcMain.removeHandler('auth-session'); // avoid setting duplicate handlers
|
||||
ipcMain.handle('auth-session', authSession);
|
||||
|
||||
// handle renderer send-message event
|
||||
ipcMain.removeHandler('async-message'); // avoid setting duplicate handlers
|
||||
ipcMain.handle('async-message', asyncSend);
|
||||
|
||||
// Connect to the backend.
|
||||
socket.on('open', () => {
|
||||
console.log('Connected to Crimata Servers.');
|
||||
|
|
|
|||
Loading…
Reference in a new issue