'use client' import type { EnvironmentVariable } from '@/app/components/workflow/types' import { Button } from '@langgenius/dify-ui/button' import { cn } from '@langgenius/dify-ui/cn' import { RiCloseLine, RiLock2Line } from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import Checkbox from '@/app/components/base/checkbox' import { Env } from '@/app/components/base/icons/src/vender/line/others' import Modal from '@/app/components/base/modal' export type DSLExportConfirmModalProps = { envList: EnvironmentVariable[] onConfirm: (state: boolean) => void | Promise onClose: () => void } const DSLExportConfirmModal = ({ envList = [], onConfirm, onClose, }: DSLExportConfirmModalProps) => { const { t } = useTranslation() const [exportSecrets, setExportSecrets] = useState(false) const [isExporting, setIsExporting] = useState(false) const submit = useCallback(async () => { if (isExporting) return setIsExporting(true) try { await onConfirm(exportSecrets) onClose() } finally { setIsExporting(false) } }, [exportSecrets, isExporting, onClose, onConfirm]) return (
{t('env.export.title', { ns: 'workflow' })}
!isExporting && onClose()} >
{envList.map((env, index) => ( ))}
{t('env.export.name', { ns: 'workflow' })} {t('env.export.value', { ns: 'workflow' })}
{env.name}
{t('env.export.secret', { ns: 'workflow' })}
{env.value}
setExportSecrets(!exportSecrets)} />
!isExporting && setExportSecrets(!exportSecrets)} > {t('env.export.checkbox', { ns: 'workflow' })}
) } export default DSLExportConfirmModal