import type { AppInfoModalType } from './use-app-info-actions' import type { DuplicateAppModalProps } from '@/app/components/app/duplicate-modal' import type { CreateAppModalProps } from '@/app/components/explore/create-app-modal' import type { EnvironmentVariable } from '@/app/components/workflow/types' import type { App, AppSSO } from '@/types/app' import * as React from 'react' import { useTranslation } from 'react-i18next' import dynamic from '@/next/dynamic' const SwitchAppModal = dynamic(() => import('@/app/components/app/switch-app-modal'), { ssr: false }) const CreateAppModal = dynamic(() => import('@/app/components/explore/create-app-modal'), { ssr: false }) const DuplicateAppModal = dynamic(() => import('@/app/components/app/duplicate-modal'), { ssr: false }) const Confirm = dynamic(() => import('@/app/components/base/confirm'), { ssr: false }) const UpdateDSLModal = dynamic(() => import('@/app/components/workflow/update-dsl-modal'), { ssr: false }) const DSLExportConfirmModal = dynamic(() => import('@/app/components/workflow/dsl-export-confirm-modal'), { ssr: false }) type AppInfoModalsProps = { appDetail: App & Partial activeModal: AppInfoModalType closeModal: () => void secretEnvList: EnvironmentVariable[] setSecretEnvList: (list: EnvironmentVariable[]) => void onEdit: CreateAppModalProps['onConfirm'] onCopy: DuplicateAppModalProps['onConfirm'] onExport: (include?: boolean) => Promise exportCheck: () => void handleConfirmExport: () => void onConfirmDelete: () => void } const AppInfoModals = ({ appDetail, activeModal, closeModal, secretEnvList, setSecretEnvList, onEdit, onCopy, onExport, exportCheck, handleConfirmExport, onConfirmDelete, }: AppInfoModalsProps) => { const { t } = useTranslation() return ( <> {activeModal === 'switch' && ( )} {activeModal === 'edit' && ( )} {activeModal === 'duplicate' && ( )} {activeModal === 'delete' && ( )} {activeModal === 'importDSL' && ( )} {activeModal === 'exportWarning' && ( )} {secretEnvList.length > 0 && ( setSecretEnvList([])} /> )} ) } export default React.memo(AppInfoModals)