diff --git a/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx b/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx index bc44675..3305442 100644 --- a/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx +++ b/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx @@ -28,10 +28,12 @@ export const KnowledgeCardTags: React.FC = ({ sourceId, // Determine how many tags to show (2 rows worth, approximately 6-8 tags depending on length) const MAX_TAGS_COLLAPSED = 6; - // Update local state when props change + // Update local state when props change, but only when not editing to avoid overwriting user input useEffect(() => { - setEditingTags(tags); - }, [tags]); + if (!isEditing) { + setEditingTags(tags); + } + }, [tags, isEditing]); // Focus input when starting to add a new tag useEffect(() => { diff --git a/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx b/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx index f3d7eef..107a8d4 100644 --- a/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx +++ b/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx @@ -4,7 +4,7 @@ */ import { Briefcase, Terminal } from "lucide-react"; -import { useEffect, useRef, useState } from "react"; +import { useState } from "react"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../../ui/primitives"; import { cn } from "../../ui/primitives/styles"; import { SimpleTooltip } from "../../ui/primitives/tooltip"; @@ -20,31 +20,8 @@ export const KnowledgeCardType: React.FC = ({ knowledgeType, }) => { const [isEditing, setIsEditing] = useState(false); - const selectRef = useRef(null); const updateMutation = useUpdateKnowledgeItem(); - // Handle click outside to cancel editing - useEffect(() => { - const handleClickOutside = (event: MouseEvent) => { - if (isEditing && selectRef.current && event.target) { - const target = event.target as Element; - - // Don't close if clicking on the select component or its dropdown content - if (!selectRef.current.contains(target) && - !target.closest('[data-radix-select-content]') && - !target.closest('[data-radix-select-item]') && - !target.closest('[data-radix-popper-content-wrapper]')) { - setIsEditing(false); - } - } - }; - - if (isEditing) { - document.addEventListener("mousedown", handleClickOutside); - return () => document.removeEventListener("mousedown", handleClickOutside); - } - }, [isEditing]); - const isTechnical = knowledgeType === "technical"; const handleTypeChange = async (newType: "technical" | "business") => { @@ -85,11 +62,12 @@ export const KnowledgeCardType: React.FC = ({ if (isEditing) { return (
e.stopPropagation()} onKeyDown={(e) => e.stopPropagation()} >