From d2dc51d49c85e3b22a4253921ee81e2b303980d2 Mon Sep 17 00:00:00 2001 From: Ben Phelps Date: Sun, 9 Oct 2022 13:31:00 +0300 Subject: [PATCH] add services and bookmarks as manifest shortcuts --- src/pages/site.webmanifest.jsx | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/pages/site.webmanifest.jsx b/src/pages/site.webmanifest.jsx index ff9d638f1..10a448a32 100644 --- a/src/pages/site.webmanifest.jsx +++ b/src/pages/site.webmanifest.jsx @@ -1,16 +1,36 @@ import checkAndCopyConfig, { getSettings } from "utils/config/config"; import themes from "utils/styles/themes"; +import { servicesResponse, bookmarksResponse } from "utils/config/api-response"; export async function getServerSideProps({ res }) { checkAndCopyConfig("settings.yaml"); const settings = getSettings(); + const services = await servicesResponse(); + const bookmarks = await bookmarksResponse(); const color = settings.color || "slate"; const theme = settings.theme || "dark"; + const serviceShortcuts = services.map((group) => + group.services.map((service) => ({ + name: service.name, + url: service.href, + description: service.description, + })) + ); + + const bookmarkShortcuts = bookmarks.map((group) => + group.bookmarks.map((service) => ({ + name: service.name, + url: service.href, + })) + ); + + const shortcuts = [...serviceShortcuts, ...bookmarkShortcuts].flat(); + const manifest = { - name: "Homepage", - short_name: "Homepage", + name: settings.title || "Homepage", + short_name: settings.title || "Homepage", icons: [ { src: "/android-chrome-192x192.png?v=2", @@ -23,6 +43,7 @@ export async function getServerSideProps({ res }) { type: "image/png", }, ], + shortcuts, theme_color: themes[color][theme], background_color: themes[color][theme], display: "standalone",