start chatHistory
This commit is contained in:
parent
a60cc7e941
commit
76da6aed0e
8 changed files with 89 additions and 38 deletions
|
@ -1,23 +1,25 @@
|
|||
/* type ChatMessage = {
|
||||
|
||||
type Message = {
|
||||
role: string;
|
||||
content:string
|
||||
}
|
||||
|
||||
type Chat = {
|
||||
name: string;
|
||||
messages: any;
|
||||
messages: Message[];
|
||||
timestamp: number;
|
||||
};
|
||||
|
||||
let chatHistory: ChatMessage[] = [];
|
||||
export let chatHistory: Chat[] = [];
|
||||
|
||||
function addMessageToHistory(name: string, message: any): void {
|
||||
const newMessage: ChatMessage = {
|
||||
name: name,
|
||||
messages: message,
|
||||
timestamp: Date.now()
|
||||
};
|
||||
chatHistory.push(newMessage);
|
||||
console.log(`Added message from ${name}: ${message}`);
|
||||
chatHistory.sort((a,b) => b.timestamp - a.timestamp)
|
||||
export function addMessageToHistory(index: number, chat: Chat): void {
|
||||
if (index >= 0 && index < chatHistory.length) {
|
||||
chatHistory[index] = chat;
|
||||
chatHistory.sort((a, b) => b.timestamp - a.timestamp)
|
||||
}
|
||||
}
|
||||
|
||||
function removeMessageFromHistory(timestamp: number): void {
|
||||
export function removeMessageFromHistory(timestamp: number): void {
|
||||
const index = chatHistory.findIndex((msg) => msg.timestamp === timestamp);
|
||||
if (index > -1) {
|
||||
chatHistory.splice(index, 1);
|
||||
|
@ -26,4 +28,3 @@ function removeMessageFromHistory(timestamp: number): void {
|
|||
console.log(`Message not found with timestamp: ${timestamp}`);
|
||||
}
|
||||
}
|
||||
*/
|
|
@ -4,14 +4,26 @@ import ConversationFrontend from '../components/ConversationFrontend';
|
|||
import InputFrontend from "../components/InputFrontend";
|
||||
import { sendToVoiceRecognition } from "./voice_backend"
|
||||
import axios from "axios";
|
||||
import { changeHistory, checkCredentials, getHistory } from './database';
|
||||
import { addMessageToHistory, removeMessageFromHistory } from "./ChatHistory";
|
||||
|
||||
const InputOutputBackend: React.FC = () => {
|
||||
interface InputOutputHandlerProps {
|
||||
selectedIndex: number;
|
||||
}
|
||||
|
||||
const InputOutputBackend: React.FC<InputOutputHandlerProps> = ({selectedIndex}) => {
|
||||
// # variables
|
||||
type Message = {
|
||||
role: string
|
||||
content: string
|
||||
}
|
||||
|
||||
type Chat = {
|
||||
name?: string
|
||||
messages: Message[]
|
||||
timestamp: string
|
||||
}
|
||||
|
||||
// Define state variables for user preferences and messages
|
||||
const [preferredCurrency, setPreferredCurrency] = useState<string>("USD");
|
||||
const [preferredLanguage, setPreferredLanguage] = useState<string>("english");
|
||||
|
@ -242,6 +254,7 @@ const InputOutputBackend: React.FC = () => {
|
|||
const handleStopClick = () => {
|
||||
endGetWorker()
|
||||
getNewToken()
|
||||
setInputDisabled(false)
|
||||
}
|
||||
|
||||
const handleResendClick = () => {
|
||||
|
|
|
@ -75,7 +75,7 @@ export const changePassword = async (usernameOrEmail: string, password: string,
|
|||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const getData = async (usernameOrEmail: string, password: string) => {
|
||||
export const getSettings = async (usernameOrEmail: string, password: string) => {
|
||||
const data = {
|
||||
action: "get_settings",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
|
@ -85,6 +85,38 @@ export const getData = async (usernameOrEmail: string, password: string) => {
|
|||
return await sendToDatabaseAndGetString(data);
|
||||
};
|
||||
|
||||
export const changeSettings = async (usernameOrEmail: string, password: string, newData: object) => {
|
||||
const data = {
|
||||
action: "change_settings",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
data: newData,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const getHistory = async (usernameOrEmail: string, password: string) => {
|
||||
const data = {
|
||||
action: "get_history",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
};
|
||||
return await sendToDatabaseAndGetString(data);
|
||||
};
|
||||
|
||||
export const changeHistory = async (usernameOrEmail: string, password: string, newData: object) => {
|
||||
const data = {
|
||||
action: "change_history",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
data: newData,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const getEmail = async (usernameOrEmail: string, password: string): Promise<string> => {
|
||||
const data = {
|
||||
action: "get_email",
|
||||
|
@ -105,16 +137,6 @@ export const getName = async (usernameOrEmail: string, password: string): Promis
|
|||
return await sendToDatabaseAndGetString(data);
|
||||
};
|
||||
|
||||
export const changeData = async (usernameOrEmail: string, password: string, newData: object) => {
|
||||
const data = {
|
||||
action: "change_settings",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
data: newData,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const checkCredentials = async (usernameOrEmail: string, password: string) => {
|
||||
const data = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue