import { useForm } from "@mantine/form" import { useMutation, useQueryClient } from "@tanstack/react-query" import { Input, Modal, notification } from "antd" import { Download } from "lucide-react" import { useTranslation } from "react-i18next" type Props = { open: boolean setOpen: (open: boolean) => void } export const AddOllamaModelModal: React.FC = ({ open, setOpen }) => { const { t } = useTranslation(["settings", "common", "openai"]) const queryClient = useQueryClient() const form = useForm({ initialValues: { model: "" } }) const pullModel = async (modelName: string) => { modelName.replaceAll("ollama pull", "").replaceAll("ollama run", "").trim() notification.info({ message: t("manageModels.notification.pullModel"), description: t("manageModels.notification.pullModelDescription", { modelName }) }) setOpen(false) form.reset() browser.runtime.sendMessage({ type: "pull_model", modelName }) return true } const { mutate: pullOllamaModel } = useMutation({ mutationFn: pullModel }) return ( setOpen(false)}>
pullOllamaModel(values.model))}>
) }