import Workspace from "@/models/workspace"; import showToast from "@/utils/toast"; import { castToType } from "@/utils/types"; import { useRef, useState } from "react"; import VectorDBIdentifier from "./VectorDBIdentifier"; import MaxContextSnippets from "./MaxContextSnippets"; import DocumentSimilarityThreshold from "./DocumentSimilarityThreshold"; import ResetDatabase from "./ResetDatabase"; import VectorCount from "./VectorCount"; import VectorSearchMode from "./VectorSearchMode"; import CTAButton from "@/components/lib/CTAButton"; export default function VectorDatabase({ workspace }) { const [hasChanges, setHasChanges] = useState(false); const [saving, setSaving] = useState(false); const formEl = useRef(null); const handleUpdate = async (e) => { setSaving(true); e.preventDefault(); const data = {}; const form = new FormData(formEl.current); for (var [key, value] of form.entries()) data[key] = castToType(key, value); const { workspace: updatedWorkspace, message } = await Workspace.update( workspace.slug, data ); if (!!updatedWorkspace) { showToast("Workspace updated!", "success", { clear: true }); } else { showToast(`Error: ${message}`, "error", { clear: true }); } setSaving(false); setHasChanges(false); }; if (!workspace) return null; return (