- Add SessionManager class to handle PTY sessions with WebSocket connections. - Implement methods for creating, retrieving, and destroying sessions. - Handle PTY output and WebSocket messages for terminal interaction. - Ensure graceful session destruction and cleanup. feat: initialize web application with Next.js and Tailwind CSS - Create initial Next.js application structure with TypeScript support. - Set up Tailwind CSS for styling with custom theme configurations. - Add ESLint configuration for code quality and consistency. feat: implement chat API and UI components - Create chat API route to handle chat requests and responses. - Develop chat layout with sidebar, header, chat window, and input components. - Integrate Zustand for state management of conversations and messages. - Add utility functions for formatting dates and managing class names. chore: add environment variables and configuration files - Create .env.example for environment variable setup. - Add configuration files for PostCSS, Tailwind CSS, and TypeScript. - Set up package.json with necessary dependencies and scripts for development.
16 lines
593 B
TypeScript
16 lines
593 B
TypeScript
import { useChatStore } from "@/lib/store";
|
|
|
|
export function useConversation(id: string) {
|
|
const { conversations, addMessage, updateMessage, deleteConversation } = useChatStore();
|
|
const conversation = conversations.find((c) => c.id === id) ?? null;
|
|
|
|
return {
|
|
conversation,
|
|
messages: conversation?.messages ?? [],
|
|
addMessage: (msg: Parameters<typeof addMessage>[1]) => addMessage(id, msg),
|
|
updateMessage: (msgId: string, updates: Parameters<typeof updateMessage>[2]) =>
|
|
updateMessage(id, msgId, updates),
|
|
deleteConversation: () => deleteConversation(id),
|
|
};
|
|
}
|