useAssistant.ts

📝代码语言:TypeScript |📘阅读时间:10分钟

概述

此模块包含多个自定义 Hook,用于在 Cherry Studio 应用中管理助手、主题以及相关设置。通过这些 Hook,可以方便地读取和更新 Redux 状态,从而实现助手的创建、修改和删除,同时还支持主题的管理和模型的设置。

代码组成

function useAssistants

useAssistants 钩子提供对所有助手列表的访问,同时支持更新、添加和删除助手操作。删除助手时,还会清理与该助手关联的所有主题。

// Declaration
function useAssistants(): {
  assistants: Assistant[],
  updateAssistants: (assistants: Assistant[]) => void,
  addAssistant: (assistant: Assistant) => void,
  removeAssistant: (id: string) => void
}

补充描述

  • 本函数使用 useAppSelector 从 Redux 中获取当前助手数组。

  • 本函数通过 useAppDispatch 触发对应的 Redux 动作(action),实现对助手的更新。

  • 当删除助手时,会遍历该助手的所有主题,并调用 TopicManager.removeTopic 对其进行清理。

外部用例

// Example Usage
import { useAssistants } from './useAssistant'

export const useExample = () => {
    const { assistants, updateAssistants, addAssistant, removeAssistant } = useAssistants()
    // 添加新助手
    addAssistant(newAssistant)

    // 更新助手数组
    updateAssistants(updatedAssistants)

    // 删除指定助手,同时清理其主题
    removeAssistant(assistantId)
    
    return {}
}

参考

最后更新于

这有帮助吗?