2023-09-27 16:06:49 +08:00
|
|
|
'use client'
|
|
|
|
|
|
|
|
import type { FC } from 'react'
|
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
import CopyFeedback from '@/app/components/base/copy-feedback'
|
|
|
|
import SecretKeyButton from '@/app/components/develop/secret-key/secret-key-button'
|
|
|
|
|
|
|
|
type ApiServerProps = {
|
|
|
|
apiBaseUrl: string
|
2025-04-16 23:07:05 +08:00
|
|
|
appId?: string
|
2023-09-27 16:06:49 +08:00
|
|
|
}
|
|
|
|
const ApiServer: FC<ApiServerProps> = ({
|
|
|
|
apiBaseUrl,
|
2025-04-16 23:07:05 +08:00
|
|
|
appId,
|
2023-09-27 16:06:49 +08:00
|
|
|
}) => {
|
|
|
|
const { t } = useTranslation()
|
|
|
|
|
|
|
|
return (
|
2025-03-21 17:41:03 +08:00
|
|
|
<div className='flex flex-wrap items-center gap-y-2'>
|
2025-04-15 16:13:18 +08:00
|
|
|
<div className='mr-2 flex h-8 items-center rounded-lg border-[0.5px] border-components-input-border-active bg-components-input-bg-normal pl-1.5 pr-1 leading-5'>
|
|
|
|
<div className='mr-0.5 h-5 shrink-0 rounded-md border border-divider-subtle px-1.5 text-[11px] text-text-tertiary'>{t('appApi.apiServer')}</div>
|
|
|
|
<div className='w-fit truncate px-1 text-[13px] font-medium text-text-secondary sm:w-[248px]'>{apiBaseUrl}</div>
|
|
|
|
<div className='mx-1 h-[14px] w-[1px] bg-divider-regular'></div>
|
|
|
|
<CopyFeedback content={apiBaseUrl}/>
|
2023-09-27 16:06:49 +08:00
|
|
|
</div>
|
2025-03-21 17:41:03 +08:00
|
|
|
<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]'>
|
2023-09-27 16:06:49 +08:00
|
|
|
{t('appApi.ok')}
|
|
|
|
</div>
|
|
|
|
<SecretKeyButton
|
2025-04-16 23:07:05 +08:00
|
|
|
className='!h-8 shrink-0' appId={appId}
|
2023-09-27 16:06:49 +08:00
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default ApiServer
|