diff --git a/src/back/html.tsx b/src/back/html.tsx index 92eb363..bc282c5 100644 --- a/src/back/html.tsx +++ b/src/back/html.tsx @@ -12,7 +12,7 @@ const default_html_options: Partial = { showBottomNavbar: true, loadHamburgerMenu: true, loadSearchModal: true, - classes: ["grid-layout-main"], + bodyClasses: ["grid-layout-main"], }; export default function html({ diff --git a/src/back/icons.ts b/src/back/icons.ts new file mode 100644 index 0000000..140bee5 --- /dev/null +++ b/src/back/icons.ts @@ -0,0 +1,28 @@ +import { promises as fs } from "fs"; +import path from "path"; +import _locreq from "locreq"; + +const locreq = _locreq(import.meta.dirname); + +const cache = {} as Record | undefined>; + +export const svg_icon_path = "src/icons"; + +async function getIconUncached(icon_name: string): Promise { + return fs.readFile( + locreq.resolve(path.resolve(svg_icon_path, icon_name + ".svg")), + "utf-8" + ); +} + +export async function icon(icon_name: string) { + if (!cache[icon_name]) { + cache[icon_name] = getIconUncached(icon_name); + } + try { + return cache[icon_name]; + } catch (e) { + console.error(e); + return ""; + } +} diff --git a/src/back/routes/common/footer.css b/src/back/routes/common/footer.css index 1bf2316..ca6a4b2 100644 --- a/src/back/routes/common/footer.css +++ b/src/back/routes/common/footer.css @@ -24,7 +24,7 @@ footer { li { list-style: none; display: inline-flex; - flex-basis: 100px; + flex-basis: 50px; justify-content: center; a { @@ -41,9 +41,31 @@ footer { } } - .footer__attribution { - text-align: center; - align-self: end; - opacity: 0.6; + .wrapper { + display: flex; + flex-flow: row wrap; + align-items: center; + gap: 16px; + justify-content: space-between; + + .footer__social_media_icons { + display: flex; + flex-flow: row wrap; + gap: 8px; + + svg { + width: 24px; + height: 24px; + + * { + fill: var(--color-brand-text-on-accent) !important; + } + } + } + + .footer__attribution { + text-align: center; + opacity: 0.6; + } } } diff --git a/src/back/routes/common/footer.tsx b/src/back/routes/common/footer.tsx index a8c2200..141e918 100644 --- a/src/back/routes/common/footer.tsx +++ b/src/back/routes/common/footer.tsx @@ -1,7 +1,14 @@ import { insert_nbsp } from "@sealcode/jdd"; import type { Context } from "koa"; +import { icon } from "src/back/icons.js"; import { TempstreamJSX } from "tempstream"; +const icons = [ + { name: "mastodon", url: "https://mastodon.com.pl" }, + { name: "peertube", url: "https://joinpeertube.org/pl" }, + { name: "matrix", url: "https://matrix.org/" }, +]; + export default async function footer(ctx: Context) { const { items: navbar_items } = await ctx.$app.collections["navbar-links"] .list(ctx.$context) @@ -23,9 +30,18 @@ export default async function footer(ctx: Context) { ))} -