ApiServer.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. 'use client'
  2. import type { FC } from 'react'
  3. import { useTranslation } from 'react-i18next'
  4. import CopyFeedback from '@/app/components/base/copy-feedback'
  5. import SecretKeyButton from '@/app/components/develop/secret-key/secret-key-button'
  6. import { randomString } from '@/utils'
  7. type ApiServerProps = {
  8. apiBaseUrl: string
  9. }
  10. const ApiServer: FC<ApiServerProps> = ({
  11. apiBaseUrl,
  12. }) => {
  13. const { t } = useTranslation()
  14. return (
  15. <div className='flex flex-wrap items-center gap-y-2'>
  16. <div className='mr-2 flex h-8 items-center rounded-lg border-[0.5px] border-white bg-white/80 pl-1.5 pr-1 leading-5'>
  17. <div className='mr-0.5 h-5 shrink-0 rounded-md border border-gray-200 px-1.5 text-[11px] text-gray-500'>{t('appApi.apiServer')}</div>
  18. <div className='w-fit truncate px-1 text-[13px] font-medium text-gray-800 sm:w-[248px]'>{apiBaseUrl}</div>
  19. <div className='mx-1 h-[14px] w-[1px] bg-gray-200'></div>
  20. <CopyFeedback
  21. content={apiBaseUrl}
  22. selectorId={randomString(8)}
  23. className={'!h-6 !w-6 hover:bg-gray-200'}
  24. />
  25. </div>
  26. <div className='mr-2 flex h-8 items-center rounded-lg border-[0.5px] border-[#D1FADF] bg-[#ECFDF3] px-3 text-xs font-semibold text-[#039855]'>
  27. {t('appApi.ok')}
  28. </div>
  29. <SecretKeyButton
  30. className='!h-8 shrink-0 bg-white'
  31. />
  32. </div>
  33. )
  34. }
  35. export default ApiServer