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) {
))}
-