import { RiArrowDownSLine } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { Check } from '@/app/components/base/icons/src/vender/line/general' import { PortalToFollowElem, PortalToFollowElemContent, PortalToFollowElemTrigger, } from '@/app/components/base/portal-to-follow-elem' import { useProviderContext } from '@/context/provider-context' import { cn } from '@/utils/classnames' 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)}` as any) })}
{ 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