import browser from 'webextension-polyfill' import React, { useState } from 'react' import { toast } from 'react-toastify' const ImportVault = ({ fetchData }) => { const [file, setFile] = useState(null) const [fileName, setFileName] = useState('') const [password, setPassword] = useState('') const handleFileChange = (e) => { e.preventDefault() const selectedFile = e.target.files[0] setFile(selectedFile) setFileName(selectedFile ? selectedFile.name : '') } const handleVaultImport = (e) => { e.preventDefault() if (file) { const reader = new FileReader() reader.onload = async () => { const encryptedVault = (JSON.parse(reader.result)).vault // Import vault via background (key stays in background memory) const response = await browser.runtime.sendMessage({ type: 'IMPORT_VAULT_BACKUP', encryptedVault, password }) // Clear password immediately setPassword('') if (response.success) { await browser.storage.local.set({ encryptedVault: response.encryptedVault, isAuthenticated: true, uiHintLocked: false, }) setFile(null) setFileName('') toast.success('Vault imported successfully') fetchData() } else { toast.error(response.error || 'Invalid vault file or wrong password') } } reader.readAsText(file) } } return (

Import Vault

Restore your vault from a backup file

Select your backup file and enter the password used when creating the backup to restore your vault.

setPassword(e.target.value)} />
) } export default ImportVault