diff --git a/public/locales/en/settings.json b/public/locales/en/settings.json index b76ed9a7c..d8c4f9825 100644 --- a/public/locales/en/settings.json +++ b/public/locales/en/settings.json @@ -66,7 +66,8 @@ "save": "Save", "cancel": "Cancel", "enable": "Enable", - "disable": "Disable" + "disable": "Disable", + "import": "Import Key" }, "edit": "Edit", "visitService": "Visit service", diff --git a/src/bundles/ipns.js b/src/bundles/ipns.js index d05b8bd1a..8fc31362f 100644 --- a/src/bundles/ipns.js +++ b/src/bundles/ipns.js @@ -47,14 +47,12 @@ const ipnsBundle = { doRemoveIpnsKey: (name) => async ({ getIpfs, store }) => { const ipfs = getIpfs() await ipfs.key.rm(name) - store.doFetchIpnsKeys() }, doRenameIpnsKey: (oldName, newName) => async ({ getIpfs, store }) => { const ipfs = getIpfs() await ipfs.key.rename(oldName, newName) - store.doFetchIpnsKeys() }, @@ -63,9 +61,20 @@ const ipnsBundle = { await ipfs.name.publish(cid, { key }) }, + doImportIpnsKey: (file) => async ({ getIpfs, store }) => { + const ipfs = getIpfs() + const reader = new FileReader() + reader.onload = async (event) => { + const key = event.target.result + await ipfs.key.import(file.name, key) + store.doFetchIpnsKeys() + } + reader.readAsText(file) + }, + + // moderate expectation: publishing should take no longer than average + // between old expectation and the length of the last publish + some buffer doUpdateExpectedPublishTime: (time) => async ({ store, dispatch }) => { - // moderate expectation: publishing should take no longer than average - // between old expectation and the length of the last publish + some buffer const oldExpectedTime = store.selectExpectedPublishTime() const avg = Math.floor((time * 1.5 + oldExpectedTime) / 2) await writeSetting('expectedPublishTime', avg)