quivr/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/hooks/useBrainManagementTabs.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

import { UUID } from "crypto";
import { useParams, useRouter } from "next/navigation";
2023-07-25 10:54:34 +03:00
import { useState } from "react";
import { useBrainContext } from "@/lib/context/BrainProvider/hooks/useBrainContext";
2023-07-25 10:54:34 +03:00
import { BrainManagementTab } from "../types";
import { getTargetedTab } from "../utils/getTargetedTab";
2023-07-25 10:54:34 +03:00
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export const useBrainManagementTabs = () => {
const [selectedTab, setSelectedTab] = useState<BrainManagementTab>(
getTargetedTab() ?? "settings"
);
const { deleteBrain, setCurrentBrainId } = useBrainContext();
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
const router = useRouter();
2023-07-25 10:54:34 +03:00
const params = useParams();
const brainId = params?.brainId as UUID | undefined;
const handleDeleteBrain = () => {
if (brainId === undefined) {
return;
}
void deleteBrain(brainId);
setCurrentBrainId(null);
router.push("/brains-management");
setIsDeleteModalOpen(false);
};
2023-07-25 10:54:34 +03:00
return {
selectedTab,
setSelectedTab,
brainId,
handleDeleteBrain,
isDeleteModalOpen,
setIsDeleteModalOpen,
2023-07-25 10:54:34 +03:00
};
};