mirror of
https://github.com/vxcontrol/pentagi.git
synced 2026-08-24 20:16:30 +00:00
refactor(knowledges): give knowledgeId back to the route param
`knowledgeId` means the route param everywhere else — the route is declared as `knowledges/:knowledgeId`, and both knowledge.tsx and the route-title resolver destructure it under that name. This header had taken the name for the loaded document's id and left the route param as `routeKnowledgeId`, so the one file that reads both used the project's vocabulary backwards. The document's id needed no binding of its own: `handleRenameSave` two functions above already guards on `knowledge` and passes `knowledge.id`, so `handleDelete` now does the same and the rename input keys off `knowledge?.id`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
e51f686e5c
commit
f95c48b062
@@ -80,15 +80,14 @@ export function KnowledgeHeader({
|
||||
viewMode = 'rich',
|
||||
}: KnowledgeHeaderProps) {
|
||||
const navigate = useNavigate();
|
||||
const { knowledgeId: routeKnowledgeId } = useParams();
|
||||
const { knowledgeId } = useParams();
|
||||
const { isMobile } = useBreakpoint();
|
||||
const { deleteKnowledge, renameKnowledge } = useKnowledges();
|
||||
const [isRenaming, setIsRenaming] = useState(false);
|
||||
const [isDeleting, setIsDeleting] = useState(false);
|
||||
const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);
|
||||
|
||||
const documentId = knowledge?.id ?? null;
|
||||
const knowledgeNav = useKnowledgeDetailNavigation(isNew ? null : (routeKnowledgeId ?? null));
|
||||
const knowledgeNav = useKnowledgeDetailNavigation(isNew ? null : (knowledgeId ?? null));
|
||||
|
||||
// Title source-of-truth is the server-side `question`. We intentionally do
|
||||
// not read it from the form draft below — the inline rename flow in this
|
||||
@@ -108,7 +107,7 @@ export function KnowledgeHeader({
|
||||
isEditing: isEditingTitle,
|
||||
startEdit: handleRenameStart,
|
||||
stopEdit: handleRenameCancel,
|
||||
} = useInlineEdit({ resetKey: documentId });
|
||||
} = useInlineEdit({ resetKey: knowledge?.id ?? null });
|
||||
|
||||
const handleRenameSave = useCallback(async () => {
|
||||
const newQuestion = editingInputRef.current?.value.trim();
|
||||
@@ -139,14 +138,14 @@ export function KnowledgeHeader({
|
||||
}, [editingInputRef, handleRenameCancel, knowledge, renameKnowledge]);
|
||||
|
||||
const handleDelete = useCallback(async () => {
|
||||
if (!documentId) {
|
||||
if (!knowledge) {
|
||||
return;
|
||||
}
|
||||
|
||||
setIsDeleting(true);
|
||||
|
||||
try {
|
||||
await deleteKnowledge(documentId);
|
||||
await deleteKnowledge(knowledge.id);
|
||||
onBeforeNavigateAway?.();
|
||||
navigate(routes.knowledges, { replace: true });
|
||||
} catch {
|
||||
@@ -154,7 +153,7 @@ export function KnowledgeHeader({
|
||||
} finally {
|
||||
setIsDeleting(false);
|
||||
}
|
||||
}, [documentId, deleteKnowledge, navigate, onBeforeNavigateAway]);
|
||||
}, [knowledge, deleteKnowledge, navigate, onBeforeNavigateAway]);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
Reference in New Issue
Block a user