From 4f7c2e95f08dd86bce30bbb2c5fe4325f0da09d6 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Thu, 13 Jul 2017 17:56:14 +0200 Subject: [PATCH] Started working on service worker --- assets.go | 12 ++++++++++++ layout/layout.pixy | 2 +- scripts/AnimeNotifier.ts | 17 ++++++++++++++++- sw/service-worker.ts | 5 +++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 sw/service-worker.ts diff --git a/assets.go b/assets.go index 8f3fc1e1..48f3b1eb 100644 --- a/assets.go +++ b/assets.go @@ -1,6 +1,7 @@ package main import ( + "io/ioutil" "strings" "github.com/aerogo/aero" @@ -10,6 +11,12 @@ import ( func init() { // Scripts scripts := js.Bundle() + serviceWorkerBytes, err := ioutil.ReadFile("sw/service-worker.js") + serviceWorker := string(serviceWorkerBytes) + + if err != nil { + panic("Couldn't load service worker") + } app.Get("/scripts", func(ctx *aero.Context) string { ctx.SetResponseHeader("Content-Type", "application/javascript") @@ -21,6 +28,11 @@ func init() { return scripts }) + app.Get("/service-worker", func(ctx *aero.Context) string { + ctx.SetResponseHeader("Content-Type", "application/javascript") + return serviceWorker + }) + // Web manifest app.Get("/manifest.json", func(ctx *aero.Context) string { return ctx.JSON(app.Config.Manifest) diff --git a/layout/layout.pixy b/layout/layout.pixy index c6cac28d..313da78e 100644 --- a/layout/layout.pixy +++ b/layout/layout.pixy @@ -33,7 +33,7 @@ component Layout(app *aero.Application, ctx *aero.Context, user *arn.User, openG component StatusMessage #status-message.fade.fade-out #status-message-text - a.status-message-action.action(href="#", data-trigger="click", data-action="closeStatusMessage") + a.status-message-action.action(href="#", data-trigger="click", data-action="closeStatusMessage", aria-label="Close status message") RawIcon("close") component LoadingAnimation diff --git a/scripts/AnimeNotifier.ts b/scripts/AnimeNotifier.ts index 12501b26..4301a1e2 100644 --- a/scripts/AnimeNotifier.ts +++ b/scripts/AnimeNotifier.ts @@ -97,7 +97,7 @@ export class AnimeNotifier { this.app.find("status-message-text") ) - // Let's start + // Let"s start this.app.run() } @@ -123,6 +123,21 @@ export class AnimeNotifier { } onIdle() { + this.registerServiceWorker() + this.pushAnalytics() + } + + registerServiceWorker() { + navigator.serviceWorker.register("service-worker", { + scope: "/" + }) + + navigator.serviceWorker.ready.then(() => { + console.log("Service worker registered.") + }) + } + + pushAnalytics() { if(!this.user) { return } diff --git a/sw/service-worker.ts b/sw/service-worker.ts new file mode 100644 index 00000000..7deffa06 --- /dev/null +++ b/sw/service-worker.ts @@ -0,0 +1,5 @@ +// pack:ignore + +self.addEventListener("install", evt => { + console.log("The service worker is being installed.") +}) \ No newline at end of file