jan/web/hooks/useDeleteModel.ts
Louis 8e603bd5db
fix: #3476 - Mismatch id between model json and path (#3645)
* fix: mismatch between model json and path

* chore: revert preserve model settings

* test: add tests
2024-09-17 16:43:47 +07:00

35 lines
972 B
TypeScript

import { useCallback } from 'react'
import { ExtensionTypeEnum, ModelExtension, ModelFile } from '@janhq/core'
import { useSetAtom } from 'jotai'
import { toaster } from '@/containers/Toast'
import { extensionManager } from '@/extension/ExtensionManager'
import { removeDownloadedModelAtom } from '@/helpers/atoms/Model.atom'
export default function useDeleteModel() {
const removeDownloadedModel = useSetAtom(removeDownloadedModelAtom)
const deleteModel = useCallback(
async (model: ModelFile) => {
await localDeleteModel(model)
removeDownloadedModel(model.id)
toaster({
title: 'Model Deletion Successful',
description: `Model ${model.name} has been successfully deleted.`,
type: 'success',
})
},
[removeDownloadedModel]
)
return { deleteModel }
}
const localDeleteModel = async (model: ModelFile) =>
extensionManager
.get<ModelExtension>(ExtensionTypeEnum.Model)
?.deleteModel(model)