Spaces:
Build error
Build error
'use client' | |
import { useTranslation } from 'react-i18next' | |
import useSWR from 'swr' | |
import Link from 'next/link' | |
import s from './index.module.css' | |
import classNames from '@/utils/classnames' | |
import { fetchAccountIntegrates } from '@/service/common' | |
const titleClassName = ` | |
mb-2 text-sm font-medium text-gray-900 | |
` | |
export default function IntegrationsPage() { | |
const { t } = useTranslation() | |
const integrateMap = { | |
google: { | |
name: t('common.integrations.google'), | |
description: t('common.integrations.googleAccount'), | |
}, | |
github: { | |
name: t('common.integrations.github'), | |
description: t('common.integrations.githubAccount'), | |
}, | |
} | |
const { data } = useSWR({ url: '/account/integrates' }, fetchAccountIntegrates) | |
const integrates = data?.data?.length ? data.data : [] | |
return ( | |
<> | |
<div className='mb-8'> | |
<div className={titleClassName}>{t('common.integrations.connected')}</div> | |
{ | |
integrates.map(integrate => ( | |
<div key={integrate.provider} className='mb-2 flex items-center px-3 py-2 bg-gray-50 border-[0.5px] border-gray-200 rounded-lg'> | |
<div className={classNames('w-8 h-8 mr-3 bg-white rounded-lg border border-gray-100', s[`${integrate.provider}-icon`])} /> | |
<div className='grow'> | |
<div className='leading-[21px] text-sm font-medium text-gray-800'>{integrateMap[integrate.provider].name}</div> | |
<div className='leading-[18px] text-xs font-normal text-gray-500'>{integrateMap[integrate.provider].description}</div> | |
</div> | |
{ | |
!integrate.is_bound && ( | |
<Link | |
className='flex items-center h-8 px-[7px] bg-white rounded-lg border border-gray-200 text-xs font-medium text-gray-700 cursor-pointer' | |
href={integrate.link} | |
target='_blank' rel='noopener noreferrer'> | |
{t('common.integrations.connect')} | |
</Link> | |
) | |
} | |
</div> | |
)) | |
} | |
</div> | |
{/* <div className='mb-8'> | |
<div className={titleClassName}>Add a service </div> | |
{ | |
services.map(service => ( | |
<div key={service.key} className='mb-2 flex items-center px-3 py-2 bg-gray-50 border-[0.5px] border-gray-200 rounded-lg'> | |
<div className={classNames('w-8 h-8 mr-3 bg-white rounded-lg border border-gray-100', s[`${service.key}-icon`])} /> | |
<div className='grow'> | |
<div className='leading-[21px] text-sm font-medium text-gray-800'>{service.name}</div> | |
<div className='leading-[18px] text-xs font-normal text-gray-500'>{service.description}</div> | |
</div> | |
<Button className='text-xs font-medium text-gray-800'>Connect</Button> | |
</div> | |
)) | |
} | |
</div> */} | |
</> | |
) | |
} | |