diff --git a/src/components/chat-components/ProjectList.tsx b/src/components/chat-components/ProjectList.tsx index 4fc49362..c6df91c5 100644 --- a/src/components/chat-components/ProjectList.tsx +++ b/src/components/chat-components/ProjectList.tsx @@ -1,5 +1,6 @@ import { ProjectConfig, setCurrentProject } from "@/aiParams"; import { AddProjectModal } from "@/components/modals/AddProjectModal"; +import { ConfirmModal } from "@/components/modals/ConfirmModal"; import { Button } from "@/components/ui/button"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; import { @@ -12,8 +13,8 @@ import { import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; import { logError } from "@/logger"; +import { updateSetting } from "@/settings/model"; import { - BookOpen, ChevronDown, ChevronUp, Edit2, @@ -21,19 +22,22 @@ import { Info, MessageSquare, Plus, + Trash2, X, } from "lucide-react"; -import { App } from "obsidian"; +import { App, Notice } from "obsidian"; import React, { memo, useEffect, useState } from "react"; function ProjectItem({ project, loadContext, onEdit, + onDelete, }: { project: ProjectConfig; loadContext: (project: ProjectConfig) => void; onEdit: (project: ProjectConfig) => void; + onDelete: (project: ProjectConfig) => void; }) { return (
Start Chat + + + + + Delete Project +
); @@ -149,6 +175,20 @@ export const ProjectList = memo( modal.open(); }; + const handleDeleteProject = (project: ProjectConfig) => { + const currentProjects = projects || []; + const newProjectList = currentProjects.filter((p) => p.name !== project.name); + + // If the deleted project is currently selected, close it + if (selectedProject?.name === project.name) { + enableOrDisableProject(false); + } + + // Update the project list in settings + updateSetting("projectList", newProjectList); + new Notice(`Project "${project.name}" deleted successfully`); + }; + const enableOrDisableProject = (enable: boolean, project?: ProjectConfig) => { if (!enable) { setSelectedProject(null); @@ -320,6 +360,7 @@ export const ProjectList = memo( project={project} loadContext={handleLoadContext} onEdit={handleEditProject} + onDelete={handleDeleteProject} /> ))} @@ -342,20 +383,14 @@ export const ProjectList = memo(

- Create and explore personalized AI assistants with custom instructions, knowledge - bases, and skill sets for each project. + Create your project-based AI assistants with custom instructions, context, and + model configurations.

Click a project card to start chatting
-
- - - The more you use a project, the deeper the AI's understanding becomes - -