File size: 1,474 Bytes
f8b5d42 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import { useState } from "react";
import Workspace from "@/models/workspace";
import showToast from "@/utils/toast";
import { useTranslation } from "react-i18next";
export default function ResetDatabase({ workspace }) {
const [deleting, setDeleting] = useState(false);
const { t } = useTranslation();
const resetVectorDatabase = async () => {
if (!window.confirm(`${t("vector-workspace.reset.confirm")}`)) return false;
setDeleting(true);
const success = await Workspace.wipeVectorDb(workspace.slug);
if (!success) {
showToast(
t("vector-workspace.reset.error"),
t("vector-workspace.common.error"),
{
clear: true,
}
);
setDeleting(false);
return;
}
showToast(
t("vector-workspace.reset.success"),
t("vector-workspace.common.success"),
{
clear: true,
}
);
setDeleting(false);
};
return (
<button
disabled={deleting}
onClick={resetVectorDatabase}
type="button"
className="w-60 transition-all duration-300 border border-transparent rounded-lg whitespace-nowrap text-sm px-5 py-2.5 focus:z-10 bg-red-500/25 text-red-200 light:text-red-500 hover:light:text-[#FFFFFF] hover:text-[#FFFFFF] hover:bg-red-600 disabled:bg-red-600 disabled:text-red-200 disabled:animate-pulse"
>
{deleting
? t("vector-workspace.reset.resetting")
: t("vector-workspace.reset.reset")}
</button>
);
}
|