Implement knowledge base page routing and enhance ComponentsKnowledgePage

- Update the main knowledge page to support a list mode.
- Add new pages for creating and editing knowledge bases, utilizing the ComponentsKnowledgePage component with appropriate modes.
- Introduce a new API method for retrieving knowledge base details by ID.
- Enhance the ComponentsKnowledgePage to handle different modes (list, create, edit) and improve user interaction with knowledge bases.
This commit is contained in:
Xin Wang
2026-07-12 18:02:24 +08:00
parent de58f30014
commit 5d52ce8380
6 changed files with 1138 additions and 127 deletions

View File

@@ -0,0 +1,10 @@
import { ComponentsKnowledgePage } from "@/components/pages/ComponentsKnowledgePage";
export default async function Page({
params,
}: {
params: Promise<{ id: string }>;
}) {
const { id } = await params;
return <ComponentsKnowledgePage mode="edit" knowledgeBaseId={id} />;
}

View File

@@ -0,0 +1,5 @@
import { ComponentsKnowledgePage } from "@/components/pages/ComponentsKnowledgePage";
export default function Page() {
return <ComponentsKnowledgePage mode="create" />;
}

View File

@@ -1,5 +1,5 @@
import { ComponentsKnowledgePage } from "@/components/pages/ComponentsKnowledgePage";
export default function Page() {
return <ComponentsKnowledgePage />;
return <ComponentsKnowledgePage mode="list" />;
}

View File

@@ -3041,7 +3041,9 @@ function TextAreaField({
placeholder={placeholder}
onChange={(event) => onChange(event.target.value)}
rows={rows}
className="resize-none border-hairline-strong bg-background text-foreground placeholder:text-muted-soft"
// Override ui/textarea's field-sizing-content so `rows` sets a real height
// instead of collapsing to min-h-16 when the value is short.
className="field-sizing-fixed min-h-32 resize-y border-hairline-strong bg-background text-foreground placeholder:text-muted-soft"
/>
</label>
);

File diff suppressed because it is too large Load Diff

View File

@@ -377,6 +377,7 @@ export type KnowledgeBaseUpsert = Pick<
export const knowledgeBasesApi = {
list: () => request<KnowledgeBase[]>("/api/knowledge-bases"),
get: (id: string) => request<KnowledgeBase>(`/api/knowledge-bases/${id}`),
create: (body: KnowledgeBaseUpsert) =>
request<KnowledgeBase>("/api/knowledge-bases", { method: "POST", body: JSON.stringify(body) }),
update: (id: string, body: KnowledgeBaseUpsert) =>