From 3abed8be728bff956953639b34699e8f5952bf0e Mon Sep 17 00:00:00 2001 From: Michael Fix Date: Fri, 20 Sep 2019 13:34:58 -0700 Subject: [PATCH] Old TODOs / PWA work (#866) * old TODOs * fix up old next-offline TODO * undo changes * add apple touch icon --- components/Editor.js | 2 +- components/Meta.js | 1 + lib/util.js | 1 - next.config.js | 4 ++-- static/brand/apple-touch-icon.png | Bin 0 -> 7172 bytes 5 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 static/brand/apple-touch-icon.png diff --git a/components/Editor.js b/components/Editor.js index 8affda5..1553370 100644 --- a/components/Editor.js +++ b/components/Editor.js @@ -69,7 +69,7 @@ class Editor extends React.Component { const { queryState } = getRouteState(this.props.router) const newState = { - // TODO we could create an interface for loading this config, so that it looks identical + // IDEA: we could create an interface for loading this config, so that it looks identical // whether config is loaded from localStorage, gist, or even something like IndexDB // Load options from gist or localStorage ...(this.props.snippet ? null : getSettings(localStorage)), diff --git a/components/Meta.js b/components/Meta.js index 5ee1c76..3ad5d3e 100644 --- a/components/Meta.js +++ b/components/Meta.js @@ -57,6 +57,7 @@ export const MetaTags = React.memo(() => ( {title} + )) diff --git a/lib/util.js b/lib/util.js index 1c6469d..9fa7c78 100644 --- a/lib/util.js +++ b/lib/util.js @@ -36,7 +36,6 @@ const parse = v => { export const toggle = stateField => state => ({ [stateField]: !state[stateField] }) // https://gist.github.com/alexgibson/1704515 -// TODO use https://github.com/sindresorhus/escape-goat/ export const escapeHtml = s => { if (typeof s === 'string') { return s diff --git a/next.config.js b/next.config.js index e426881..342e089 100644 --- a/next.config.js +++ b/next.config.js @@ -10,11 +10,11 @@ const config = withOffline({ granularChunks: true }, dontAutoRegisterSw: true, + // https://github.com/hanford/next-offline/blob/master/packages/now2-example/next.config.js workboxOpts: { - // TODO get default config from `next-offline`? swDest: 'static/service-worker.js', - globPatterns: ['static/**/*'], globDirectory: '.', + globPatterns: ['static/**/*'], runtimeCaching: [ { urlPattern: /^https?.*/, diff --git a/static/brand/apple-touch-icon.png b/static/brand/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c246960b1ca7a19ab4d722f34b7b46f17680eb7 GIT binary patch literal 7172 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 aR*;nbe*^?Y`sfV-@Kn