diff --git a/frontend/src/components/ConnectionPackagePasswordModal.tsx b/frontend/src/components/ConnectionPackagePasswordModal.tsx index e91e8e40..ab4a9f41 100644 --- a/frontend/src/components/ConnectionPackagePasswordModal.tsx +++ b/frontend/src/components/ConnectionPackagePasswordModal.tsx @@ -1,12 +1,17 @@ import Modal from './common/ResizableDraggableModal'; import React from 'react'; -import { Button, Checkbox, Input, Typography } from 'antd'; +import { Button, Checkbox, Input, Select, Typography } from 'antd'; import { useI18n } from '../i18n/provider'; const { Text } = Typography; type ConnectionPackagePasswordModalMode = 'import' | 'export'; +export type ConnectionPackageExportOption = { + value: string; + label: string; +}; + export interface ConnectionPackagePasswordModalProps { open: boolean; title: string; @@ -18,6 +23,11 @@ export interface ConnectionPackagePasswordModalProps { confirmLoading?: boolean; confirmText?: string; cancelText?: string; + /** Export only: available connections for selection. */ + connectionOptions?: ConnectionPackageExportOption[]; + /** Export only: selected connection ids. Empty means none selected. */ + selectedConnectionIds?: string[]; + onSelectedConnectionIdsChange?: (ids: string[]) => void; onBack?: () => void; embedded?: boolean; onIncludeSecretsChange?: (value: boolean) => void; @@ -38,6 +48,9 @@ export default function ConnectionPackagePasswordModal({ confirmLoading, confirmText, cancelText, + connectionOptions = [], + selectedConnectionIds = [], + onSelectedConnectionIdsChange, onBack, embedded = false, onIncludeSecretsChange, @@ -59,6 +72,9 @@ export default function ConnectionPackagePasswordModal({ : (useFilePassword ? t('app.connection_package.dialog.help.share_file_password_separately') : t('app.connection_package.dialog.help.encrypted_passwords_recommend_file_password')); + const allConnectionIds = connectionOptions.map((item) => item.value); + const selectedCount = selectedConnectionIds.length; + const totalCount = connectionOptions.length; return ( {isExportMode ? (
+
+
+ + {t('app.connection_package.dialog.export_connections_label')} + +
+ + +
+
+