import { useTranslation } from 'react-i18next' import cn from 'classnames' import React, { useState } from 'react' import { RiArrowDownSLine } from '@remixicon/react' import { useProviderContext } from '@/context/provider-context' import { PortalToFollowElem, PortalToFollowElemContent, PortalToFollowElemTrigger, } from '@/app/components/base/portal-to-follow-elem' import { Check } from '@/app/components/base/icons/src/vender/line/general' export type RoleSelectorProps = { value: string onChange: (role: string) => void } const RoleSelector = ({ value, onChange }: RoleSelectorProps) => { const { t } = useTranslation() const [open, setOpen] = useState(false) const { datasetOperatorEnabled } = useProviderContext() const toHump = (name: string) => name.replace(/_(\w)/g, (all, letter) => letter.toUpperCase()) return (
setOpen(v => !v)} className='block' >
{t('common.members.invitedAsRole', { role: t(`common.members.${toHump(value)}`) })}
{ onChange('normal') setOpen(false) }}>
{t('common.members.normal')}
{t('common.members.normalTip')}
{value === 'normal' && }
{ onChange('editor') setOpen(false) }}>
{t('common.members.editor')}
{t('common.members.editorTip')}
{value === 'editor' && }
{ onChange('admin') setOpen(false) }}>
{t('common.members.admin')}
{t('common.members.adminTip')}
{value === 'admin' && }
{datasetOperatorEnabled && (
{ onChange('dataset_operator') setOpen(false) }}>
{t('common.members.datasetOperator')}
{t('common.members.datasetOperatorTip')}
{value === 'dataset_operator' && }
)}
) } export default RoleSelector