33 lines
948 B
TypeScript
33 lines
948 B
TypeScript
import { useCallback } from 'react'
|
|
|
|
import { ExtensionTypeEnum, ModelExtension, Model } 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: Model) => {
|
|
await localDeleteModel(model.id)
|
|
removeDownloadedModel(model.id)
|
|
toaster({
|
|
title: 'Model Deletion Successful',
|
|
description: `Model ${model.name} has been successfully deleted.`,
|
|
type: 'success',
|
|
})
|
|
},
|
|
[removeDownloadedModel]
|
|
)
|
|
|
|
return { deleteModel }
|
|
}
|
|
|
|
const localDeleteModel = async (id: string) =>
|
|
extensionManager.get<ModelExtension>(ExtensionTypeEnum.Model)?.deleteModel(id)
|