diff --git a/ui/assets/PersonaFlowIcon-512.png b/ui/assets/PersonaFlowIcon-512.png
new file mode 100644
index 00000000..62b6fd90
Binary files /dev/null and b/ui/assets/PersonaFlowIcon-512.png differ
diff --git a/ui/src/app/[[...slug]]/page.tsx b/ui/src/app/[[...slug]]/page.tsx
index 4eca9933..b3d2de12 100644
--- a/ui/src/app/[[...slug]]/page.tsx
+++ b/ui/src/app/[[...slug]]/page.tsx
@@ -12,7 +12,7 @@ export default function ConversationPage({
if (!isValidParam(params.slug)) return notFound();
return (
-
+
);
diff --git a/ui/src/app/icon.ico b/ui/src/app/icon.ico
new file mode 100644
index 00000000..62b6fd90
Binary files /dev/null and b/ui/src/app/icon.ico differ
diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx
index 44c0f94d..c6a8598a 100644
--- a/ui/src/app/layout.tsx
+++ b/ui/src/app/layout.tsx
@@ -12,6 +12,9 @@ const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "PersonaFlow",
description: "Where AI meets individuality for unmatched personalization",
+ icons: {
+ icon: '/icon.ico'
+ }
};
export default function RootLayout({
diff --git a/ui/src/components/features/build-panel/components/__tests__/assistant-builder.spec.tsx b/ui/src/components/features/build-panel/components/__tests__/assistant-builder.spec.tsx
index cca47d6f..1e7b49fa 100644
--- a/ui/src/components/features/build-panel/components/__tests__/assistant-builder.spec.tsx
+++ b/ui/src/components/features/build-panel/components/__tests__/assistant-builder.spec.tsx
@@ -42,7 +42,6 @@ test("should render", () => {
render(
);
- screen.getByRole("button", { name: "Create Assistant" });
expect(screen.getByText("EditAssistant")).toBeInTheDocument();
expect(screen.queryByText("CreateAssistant")).toBeNull();
});
diff --git a/ui/src/components/features/build-panel/components/assistant-builder.tsx b/ui/src/components/features/build-panel/components/assistant-builder.tsx
index 1ea2a7ec..9e33759f 100644
--- a/ui/src/components/features/build-panel/components/assistant-builder.tsx
+++ b/ui/src/components/features/build-panel/components/assistant-builder.tsx
@@ -1,29 +1,14 @@
"use client";
-import { AssistantSelector } from "./assistant-selector";
-import { Button } from "@/components/ui/button";
-import { SquareIcon } from "@radix-ui/react-icons";
import { EditAssistant } from "./edit-assistant";
import { CreateAssistant } from "./create-assistant";
-import { useRouter } from "next/navigation";
import { useSlugRoutes } from "@/hooks/useSlugParams";
export function AssistentBuilder() {
const {assistantId} = useSlugRoutes();
- const router = useRouter()
return (
<>
-
-
-
-
{assistantId ?
:
}
>
);
diff --git a/ui/src/components/features/build-panel/components/build-panel.tsx b/ui/src/components/features/build-panel/components/build-panel.tsx
index ab83d678..639a3f4c 100644
--- a/ui/src/components/features/build-panel/components/build-panel.tsx
+++ b/ui/src/components/features/build-panel/components/build-panel.tsx
@@ -12,7 +12,7 @@ export default function BuildPanel() {
};
return (
-
+
{isOpen ? (
+
{threadId || isNewThread ? (
) : (
-
Welcome!
+
+
{'<> Send a message to create a thread. >'}
+
)}
{
+ const [_, setIsNavbarOpen] = useAtom(threadAtom)
+
+ const openNavbar = () => setIsNavbarOpen(isOpen => !isOpen);
+
+ return
+}
\ No newline at end of file
diff --git a/ui/src/components/features/header/components/header.tsx b/ui/src/components/features/header/components/header.tsx
index 99acc0cd..6b82178a 100644
--- a/ui/src/components/features/header/components/header.tsx
+++ b/ui/src/components/features/header/components/header.tsx
@@ -1,7 +1,29 @@
+'use client'
+import { Button } from "@/components/ui/button";
+import { AssistantSelector } from "../../build-panel/components/assistant-selector";
+import { useRouter } from "next/navigation";
+import { Plus } from "lucide-react";
+import PersonaFlowIcon from '../../../../../assets/PersonaFlowIcon-512.png'
+import Image from "next/image";
+
export default function Header() {
+ const router = useRouter()
return (
-
-
[ personaflow ]
+
+
+
+ [ personaflow ]
+
+
+
+
+
);
}
diff --git a/ui/src/components/features/navbar/components/navbar.tsx b/ui/src/components/features/navbar/components/navbar.tsx
index a24dc656..d98812ed 100644
--- a/ui/src/components/features/navbar/components/navbar.tsx
+++ b/ui/src/components/features/navbar/components/navbar.tsx
@@ -9,13 +9,16 @@ import { TGroupedThreads } from "@/data-provider/types";
import { useSlugRoutes } from "@/hooks/useSlugParams";
import NewThreadBtn from "./new-thread-btn";
import { useRouter } from "next/navigation";
+import { useAtom } from "jotai";
+import { threadAtom } from "@/store";
export default function Navbar() {
const { data: threadsData, isLoading: threadsLoading } =
useGetMyThreads(true);
const [filteredThreads, setFilteredThreads] = useState(threadsData || {});
- const [open, setOpen] = useState(false);
+ const [isNavbarOpen] = useAtom(threadAtom);
+ // const [open, setOpen] = useState(false);
const router = useRouter()
@@ -48,21 +51,19 @@ export default function Navbar() {
};
return (
-
- {/* Container */}
{!threadsLoading &&
}
{!threadsLoading && Object.values(filteredThreads).every((value) => value.length === 0) && (
-
+
No threads found.
)}