add services and bookmarks as manifest shortcuts

pull/360/head
Ben Phelps 2 years ago
parent d26ae30fa6
commit d2dc51d49c

@ -1,16 +1,36 @@
import checkAndCopyConfig, { getSettings } from "utils/config/config"; import checkAndCopyConfig, { getSettings } from "utils/config/config";
import themes from "utils/styles/themes"; import themes from "utils/styles/themes";
import { servicesResponse, bookmarksResponse } from "utils/config/api-response";
export async function getServerSideProps({ res }) { export async function getServerSideProps({ res }) {
checkAndCopyConfig("settings.yaml"); checkAndCopyConfig("settings.yaml");
const settings = getSettings(); const settings = getSettings();
const services = await servicesResponse();
const bookmarks = await bookmarksResponse();
const color = settings.color || "slate"; const color = settings.color || "slate";
const theme = settings.theme || "dark"; 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 = { const manifest = {
name: "Homepage", name: settings.title || "Homepage",
short_name: "Homepage", short_name: settings.title || "Homepage",
icons: [ icons: [
{ {
src: "/android-chrome-192x192.png?v=2", src: "/android-chrome-192x192.png?v=2",
@ -23,6 +43,7 @@ export async function getServerSideProps({ res }) {
type: "image/png", type: "image/png",
}, },
], ],
shortcuts,
theme_color: themes[color][theme], theme_color: themes[color][theme],
background_color: themes[color][theme], background_color: themes[color][theme],
display: "standalone", display: "standalone",

Loading…
Cancel
Save