| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 'use client'import { createContext, useContext, useMemo } from 'react'import type { FC, ReactNode } from 'react'import useSWR from 'swr'import type { ExternalAPIItem, ExternalAPIListResponse } from '@/models/datasets'import { fetchExternalAPIList } from '@/service/datasets'type ExternalKnowledgeApiContextType = {  externalKnowledgeApiList: ExternalAPIItem[]  mutateExternalKnowledgeApis: () => Promise<ExternalAPIListResponse | undefined>  isLoading: boolean}const ExternalKnowledgeApiContext = createContext<ExternalKnowledgeApiContextType | undefined>(undefined)export type ExternalKnowledgeApiProviderProps = {  children: ReactNode}export const ExternalKnowledgeApiProvider: FC<ExternalKnowledgeApiProviderProps> = ({ children }) => {  const { data, mutate: mutateExternalKnowledgeApis, isLoading } = useSWR<ExternalAPIListResponse>(    { url: '/datasets/external-knowledge-api' },    fetchExternalAPIList,  )  const contextValue = useMemo<ExternalKnowledgeApiContextType>(() => ({    externalKnowledgeApiList: data?.data || [],    mutateExternalKnowledgeApis,    isLoading,  }), [data, mutateExternalKnowledgeApis, isLoading])  return (    <ExternalKnowledgeApiContext.Provider value={contextValue}>      {children}    </ExternalKnowledgeApiContext.Provider>  )}export const useExternalKnowledgeApi = () => {  const context = useContext(ExternalKnowledgeApiContext)  if (context === undefined)    throw new Error('useExternalKnowledgeApi must be used within a ExternalKnowledgeApiProvider')  return context}
 |