import { useState } from 'react'
import useSWR from 'swr'
import { fetchProviders } from '@/service/common'
import ProviderItem from './provider-item'
import OpenaiHostedProvider from './openai-hosted-provider'
import type { ProviderHosted } from '@/models/common'
import { LockClosedIcon } from '@heroicons/react/24/solid'
import { useTranslation } from 'react-i18next'
import Link from 'next/link'
import { IS_CE_EDITION } from '@/config'
const providersMap: {[k: string]: any} = {
  'openai-custom': {
    icon: 'openai',
    name: 'OpenAI',
  },
  'azure_openai-custom': {
    icon: 'azure',
    name: 'Azure OpenAI Service',
  }
}
// const providersList = [
//   {
//     id: 'openai',
//     name: 'OpenAI',
//     providerKey: '1',
//     status: '',
//     child: 
//   },
//   {
//     id: 'azure',
//     name: 'Azure OpenAI Service',
//     providerKey: '1',
//     status: 'error',
//     child: 
//   },
//   {
//     id: 'anthropic',
//     name: 'Anthropic',
//     providerKey: '',
//     status: '',
//     child: 
placeholder
//   },
//   {
//     id: 'hugging-face',
//     name: 'Hugging Face Hub',
//     providerKey: '',
//     comingSoon: true,
//     status: '',
//     child: placeholder
//   }
// ]
const ProviderPage = () => {
  const { t } = useTranslation()
  const [activeProviderId, setActiveProviderId] = useState('')
  const { data, mutate } = useSWR({ url: '/workspaces/current/providers' }, fetchProviders)
  const providers = data?.filter(provider => providersMap[`${provider.provider_name}-${provider.provider_type}`])?.map(provider => {
    const providerKey = `${provider.provider_name}-${provider.provider_type}`
    return {
      provider,
      icon: providersMap[providerKey].icon,
      name: providersMap[providerKey].name,
    }
  })
  const providerHosted = data?.filter(provider => provider.provider_name === 'openai' && provider.provider_type === 'system')?.[0]
  return (
    
      {
        providerHosted && !IS_CE_EDITION && (
          <>
            
              
            
            
          >
        )
      }
      
        {
          providers?.map(providerItem => (
            
 setActiveProviderId(aid)}
              onSave={() => mutate()}
            />
          ))
        }
      
        
        {t('common.provider.encrypted.front')}
        
          PKCS1_OAEP
        
        {t('common.provider.encrypted.back')}