1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- '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> */}
- </>
- )
- }
|