mirror of https://github.com/freeCodeCamp/devdocs
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
4.1 KiB
86 lines
4.1 KiB
/*
|
|
* decaffeinate suggestions:
|
|
* DS102: Remove unnecessary code created because of implicit returns
|
|
* DS205: Consider reworking code to avoid use of IIFEs
|
|
* DS207: Consider shorter variations of null checks
|
|
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
|
|
*/
|
|
const error = function(title, text, links) {
|
|
if (text == null) { text = ''; }
|
|
if (links == null) { links = ''; }
|
|
if (text) { text = `<p class="_error-text">${text}</p>`; }
|
|
if (links) { links = `<p class="_error-links">${links}</p>`; }
|
|
return `<div class="_error"><h1 class="_error-title">${title}</h1>${text}${links}</div>`;
|
|
};
|
|
|
|
const back = '<a href="#" data-behavior="back" class="_error-link">Go back</a>';
|
|
|
|
app.templates.notFoundPage = () => error(" Page not found. ",
|
|
" It may be missing from the source documentation or this could be a bug. ",
|
|
back);
|
|
|
|
app.templates.pageLoadError = () => error(" The page failed to load. ",
|
|
` It may be missing from the server (try reloading the app) or you could be offline (try <a href="/offline">installing the documentation for offline usage</a> when online again).<br>
|
|
If you're online and you keep seeing this, you're likely behind a proxy or firewall that blocks cross-domain requests. `,
|
|
` ${back} · <a href="/#${location.pathname}" target="_top" class="_error-link">Reload</a>
|
|
· <a href="#" class="_error-link" data-retry>Retry</a> `
|
|
);
|
|
|
|
app.templates.bootError = () => error(" The app failed to load. ",
|
|
` Check your Internet connection and try <a href="#" data-behavior="reload">reloading</a>.<br>
|
|
If you keep seeing this, you're likely behind a proxy or firewall that blocks cross-domain requests. `
|
|
);
|
|
|
|
app.templates.offlineError = function(reason, exception) {
|
|
if (reason === 'cookie_blocked') {
|
|
return error(" Cookies must be enabled to use offline mode. ");
|
|
}
|
|
|
|
reason = (() => { switch (reason) {
|
|
case 'not_supported':
|
|
return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>
|
|
Unfortunately your browser either doesn't support IndexedDB or doesn't make it available. `;
|
|
case 'buggy':
|
|
return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>
|
|
Unfortunately your browser's implementation of IndexedDB contains bugs that prevent DevDocs from using it. `;
|
|
case 'private_mode':
|
|
return ` Your browser appears to be running in private mode.<br>
|
|
This prevents DevDocs from caching documentations for offline access.`;
|
|
case 'exception':
|
|
return ` An error occurred when trying to open the IndexedDB database:<br>
|
|
<code class="_label">${exception.name}: ${exception.message}</code> `;
|
|
case 'cant_open':
|
|
return ` An error occurred when trying to open the IndexedDB database:<br>
|
|
<code class="_label">${exception.name}: ${exception.message}</code><br>
|
|
This could be because you're browsing in private mode or have disallowed offline storage on the domain. `;
|
|
case 'version':
|
|
return ` The IndexedDB database was modified with a newer version of the app.<br>
|
|
<a href="#" data-behavior="reload">Reload the page</a> to use offline mode. `;
|
|
case 'empty':
|
|
return " The IndexedDB database appears to be corrupted. Try <a href=\"#\" data-behavior=\"reset\">resetting the app</a>. ";
|
|
} })();
|
|
|
|
return error('Offline mode is unavailable.', reason);
|
|
};
|
|
|
|
app.templates.unsupportedBrowser = `\
|
|
<div class="_fail">
|
|
<h1 class="_fail-title">Your browser is unsupported, sorry.</h1>
|
|
<p class="_fail-text">DevDocs is an API documentation browser which supports the following browsers:
|
|
<ul class="_fail-list">
|
|
<li>Recent versions of Firefox, Chrome, or Opera
|
|
<li>Safari 11.1+
|
|
<li>Edge 17+
|
|
<li>iOS 11.3+
|
|
</ul>
|
|
<p class="_fail-text">
|
|
If you're unable to upgrade, we apologize.
|
|
We decided to prioritize speed and new features over support for older browsers.
|
|
<p class="_fail-text">
|
|
Note: if you're already using one of the browsers above, check your settings and add-ons.
|
|
The app uses feature detection, not user agent sniffing.
|
|
<p class="_fail-text">
|
|
— <a href="https://twitter.com/DevDocs">@DevDocs</a>
|
|
</div>\
|
|
`;
|