From 35dc239c25a312437a37b124b5704052962078f9 Mon Sep 17 00:00:00 2001 From: shuaiplus <2327005759@qq.com> Date: Wed, 4 Mar 2026 23:07:03 +0800 Subject: [PATCH] feat: enhance import/export page with new layout and features --- webapp/src/components/ImportPage.tsx | 44 ++++++++++++++-- webapp/src/lib/i18n.ts | 17 ++++++ webapp/src/styles.css | 78 ++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 4 deletions(-) diff --git a/webapp/src/components/ImportPage.tsx b/webapp/src/components/ImportPage.tsx index 923106a..df335e2 100644 --- a/webapp/src/components/ImportPage.tsx +++ b/webapp/src/components/ImportPage.tsx @@ -2,7 +2,7 @@ import { argon2idAsync } from '@noble/hashes/argon2.js'; import { strFromU8, unzipSync } from 'fflate'; import { BlobReader, Uint8ArrayWriter, ZipReader, configure as configureZipJs } from '@zip.js/zip.js'; -import { Download, FileUp } from 'lucide-preact'; +import { Archive, ArrowLeftRight, Download, FileJson, FileUp } from 'lucide-preact'; import ConfirmDialog from '@/components/ConfirmDialog'; import type { CiphersImportPayload } from '@/lib/api'; import { @@ -581,8 +581,43 @@ export default function ImportPage({ onImport, onImportEncryptedRaw, accountKeys } return ( -
-
+
+
+

{t('txt_import_export_title')}

+

{t('txt_import_export_feature_intro')}

+
+
+ + + +
+ {t('txt_import_export_feature_bw_zip_title')} +

{t('txt_import_export_feature_bw_zip_desc')}

+
+
+
+ + + +
+ {t('txt_import_export_feature_nodewarden_json_title')} +

{t('txt_import_export_feature_nodewarden_json_desc')}

+
+
+
+ + + +
+ {t('txt_import_export_feature_compat_title')} +

{t('txt_import_export_feature_compat_desc')}

+
+
+
+
+ +
+

{t('txt_import')}

{t('txt_import_vault_data_hint')} @@ -665,7 +700,7 @@ export default function ImportPage({ onImport, onImportEncryptedRaw, accountKeys

-
+

{t('txt_export')}

{t('txt_export_vault_data_hint')} @@ -735,6 +770,7 @@ export default function ImportPage({ onImport, onImportEncryptedRaw, accountKeys

+