diff --git a/.gitignore b/.gitignore index 464d7083..8d56261e 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,6 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +# secrets +start.sh diff --git a/src/components/menu.tsx b/src/components/menu.tsx index f9d6fc91..24823ba4 100644 --- a/src/components/menu.tsx +++ b/src/components/menu.tsx @@ -7,7 +7,7 @@ const Menu = React.forwardRef< HTMLDivElement, React.HTMLAttributes >(({ className, ...props }, ref) => ( -
+
)); Menu.displayName = "Menu"; diff --git a/src/features/chat/chat-menu/chat-menu.tsx b/src/features/chat/chat-menu/chat-menu.tsx index fa387739..92fe32ed 100644 --- a/src/features/chat/chat-menu/chat-menu.tsx +++ b/src/features/chat/chat-menu/chat-menu.tsx @@ -17,22 +17,35 @@ interface Prop { export const ChatMenu = (prop:Prop) => { const [items, setItems] = useState([]); - // Fetch data when the component mounts + const [refresh, setRefresh] = useState(true); + // Fetch data when the component mounts and refreshes useEffect(() => { const fetchData = async () => { + console.log("fetching items") const data = await FindAllChatThreadForCurrentUser(); setItems(data); }; fetchData(); - }, []); + }, [refresh]); + const doRefresh = () => { + console.log("should refresh") + setRefresh(!refresh); + } + return (
{prop.isOpen ? @@ -40,7 +53,7 @@ export const ChatMenu = (prop:Prop) => { - +
diff --git a/src/features/chat/chat-menu/menu-items.tsx b/src/features/chat/chat-menu/menu-items.tsx index fa2e13f3..9561ba03 100644 --- a/src/features/chat/chat-menu/menu-items.tsx +++ b/src/features/chat/chat-menu/menu-items.tsx @@ -1,17 +1,18 @@ "use client"; import { MenuItem } from "@/components/menu"; import { Button } from "@/components/ui/button"; -import { SoftDeleteChatThreadByID } from "@/features/chat/chat-services/chat-thread-service"; -import { FileText, MessageCircle, Trash } from "lucide-react"; +import { SoftDeleteChatThreadByID, userUpdateThreadTitle } from "@/features/chat/chat-services/chat-thread-service"; +import { FileText, MessageCircle, Trash, PenSquare, Navigation } from "lucide-react"; import { useParams, useRouter } from "next/navigation"; import { FC } from "react"; import { ChatThreadModel } from "../chat-services/models"; -interface Prop { +interface RProp { menuItems: Array; + refresh: () => void } -export const MenuItems: FC = (props) => { +export const MenuItems: FC = (props) => { const { id } = useParams(); const router = useRouter(); @@ -21,6 +22,11 @@ export const MenuItems: FC = (props) => { router.replace("/chat"); }; + const renameTitle = async (threadID: string, title: string) => { + await userUpdateThreadTitle(threadID, title); + props.refresh() + }; + return ( <> {props.menuItems.map((thread) => ( @@ -45,6 +51,20 @@ export const MenuItems: FC = (props) => { {thread.name} +