import type { CredentialPermission } from '@/models/permission' import { Button } from '@langgenius/dify-ui/button' import { Dialog, DialogClose, DialogContent, DialogDescription, DialogTitle, } from '@langgenius/dify-ui/dialog' import { IconButton } from '@langgenius/dify-ui/icon-button' import { memo } from 'react' import { useTranslation } from 'react-i18next' import PermissionSelector from './permission-selector' type OAuthVisibilityDialogProps = { open: boolean onOpenChange: (open: boolean) => void permission: CredentialPermission onPermissionChange: (permission: CredentialPermission) => void onConfirm: () => Promise | void loading?: boolean } const OAuthVisibilityDialog = ({ open, onOpenChange, permission, onPermissionChange, onConfirm, loading = false, }: OAuthVisibilityDialogProps) => { const { t } = useTranslation() const handleOpenChange = (nextOpen: boolean) => { if (loading && !nextOpen) return onOpenChange(nextOpen) } return (
{t(($) => $['auth.whoCanUse'], { ns: 'plugin' })} {t(($) => $['auth.oauthCredentialPermissionDescription'], { ns: 'plugin' })} $['operation.close'], { ns: 'common' })} size="lg" className="absolute top-5 right-5" disabled={loading} > } />
) } export default memo(OAuthVisibilityDialog)