diff --git a/add-on/_locales/en/messages.json b/add-on/_locales/en/messages.json index 92db3bc6f..43fb0e81d 100644 --- a/add-on/_locales/en/messages.json +++ b/add-on/_locales/en/messages.json @@ -655,6 +655,46 @@ "message": "Deny", "description": "Button text for denying a permission (page_proxyAccessDialog_allowButton_text)" }, + "page_landingOffline_title": { + "message": "Offline Error | IPFS Companion", + "description": "Page title (page_landingOffline_title)" + }, + "page_landingOffline_head": { + "message": "Offline Error", + "description": "Page header (page_landingOffline_head)" + }, + "page_landingOffline_subhead": { + "message": "IPFS Companion tried opening the following resource, but failed:", + "description": "Page subheader (page_landingOffline_subhead)" + }, + "page_landingOffline_gatewayOffline_text": { + "message": "Your custom local gateway might be offline. You can update your local gateway in the preferences, or try loading this resource from a public gateway instead.", + "description": "Offline error message copy (page_landingOffline_gatewayOffline_text)" + }, + "page_landingOffline_gatewayOffline_updatePrefsButton_text": { + "message": "Update Preferences", + "description": "Offline error message button text for opening Companion preferences (page_landingOffline_gatewayOffline_updatePrefsButton_text)" + }, + "page_landingOffline_gatewayOffline_publicGatewayButton_text": { + "message": "Try Public Gateway", + "description": "Offline error message button text for loading from public gateway (page_landingOffline_gatewayOffline_publicGatewayButton_text)" + }, + "page_landingOffline_dnsLinkGatewayUnavailable_text": { + "message": "You tried to load a DNSLink-enabled site from a custom local gateway that's currently unavailable. Try loading it from the original host instead.", + "description": "Offline error message copy (page_landingOffline_dnsLinkGatewayUnavailable_text)" + }, + "page_landingOffline_dnsLinkGatewayUnavailable_useOriginalHostButton_text": { + "message": "Use Original Host", + "description": "Offline error message button text for loading from original host (page_landingOffline_dnsLinkGatewayUnavailable_useOriginalHostButton_text)" + }, + "page_landingOffline_dnsLinkHostUnavailable_text": { + "message": "You tried to load a DNSLink-enabled site from a host that's currently unavailable. Try loading it from the local/public gateway instead.", + "description": "Offline error message copy (page_landingOffline_dnsLinkHostUnavailable_text)" + }, + "page_landingOffline_dnsLinkHostUnavailable_useOriginalHostButton_text": { + "message": "Use Local/Public Gateway", + "description": "Offline error message button text for loading from local/public gateway (page_landingOffline_dnsLinkHostUnavailable_useOriginalHostButton_text)" + }, "page_landingWelcome_title": { "message": "Welcome | IPFS Companion", "description": "Page title (page_landingWelcome_title)" diff --git a/add-on/src/landing-pages/offline/index.html b/add-on/src/landing-pages/offline/index.html new file mode 100644 index 000000000..533b6d560 --- /dev/null +++ b/add-on/src/landing-pages/offline/index.html @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/add-on/src/landing-pages/offline/index.js b/add-on/src/landing-pages/offline/index.js new file mode 100644 index 000000000..4db7b50da --- /dev/null +++ b/add-on/src/landing-pages/offline/index.js @@ -0,0 +1,11 @@ +'use strict' +/* eslint-env browser, webextensions */ + +const browser = require('webextension-polyfill') +const choo = require('choo') +const createOfflinePage = require('./page') + +const app = choo() + +app.route('*', createOfflinePage(browser.i18n)) +app.mount('#root') diff --git a/add-on/src/landing-pages/offline/page.js b/add-on/src/landing-pages/offline/page.js new file mode 100644 index 000000000..3d8957398 --- /dev/null +++ b/add-on/src/landing-pages/offline/page.js @@ -0,0 +1,38 @@ +'use strict' + +const html = require('choo/html') + +function createOfflinePage (i18n) { + return function offlinePage (emit) { + // Set translated title + document.title = i18n.getMessage('page_landingOffline_title') + + return html` +${i18n.getMessage('page_landingOffline_gatewayOffline_text')}
+${i18n.getMessage('page_landingOffline_dnsLinkGatewayUnavailable_text')}
+${i18n.getMessage('page_landingOffline_dnsLinkHostUnavailable_text')}
+