From f1f25f4764dd8d297a59765b0df85f55da2b39ee Mon Sep 17 00:00:00 2001
From: flu0r1ne <flu0r1ne@flu0r1ne.net>
Date: Mon, 19 Jul 2021 21:08:50 -0500
Subject: Init

---
 templates/Default/index.tsx | 49 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 templates/Default/index.tsx

(limited to 'templates/Default/index.tsx')

diff --git a/templates/Default/index.tsx b/templates/Default/index.tsx
new file mode 100644
index 0000000..8902bf8
--- /dev/null
+++ b/templates/Default/index.tsx
@@ -0,0 +1,49 @@
+import clsx from "clsx";
+import React, { FC } from "react";
+import { Breadcrumbs, LinkCrumb } from "../../components/Breadcrumbs";
+import Viewport from "../../components/ViewPort";
+import styles from './default.module.scss';
+
+export type DefaultPage = {
+    className?: string;
+    path?: string;
+};
+
+export type RelPathProps = {
+    path: string;
+};
+
+const RelPath : FC<RelPathProps> = ({path, ...props}) => {
+    const _path = path[path.length - 1] === '/' ? path.substr(0, path.length - 1) : path;
+    
+    const parts = _path.split('/');
+    const rels = [''];
+    
+    for(let i = 1; i < parts.length; i++) {
+        rels.push([rels[i - 1], parts[i]].join('/'));
+    }
+    
+    rels[0] = '/';
+    parts[0] = 'flu0r1ne.net';
+    
+    return (
+        <Breadcrumbs>
+            {rels.map((relHref, i) => (
+                <LinkCrumb key={relHref} href={relHref}>
+                    {parts[i]} 
+                </LinkCrumb>
+            ))}
+        </Breadcrumbs>
+    );
+}
+
+const DefaultPage : FC<DefaultPage> = ({className, children, path, ...props}) => (
+    <Viewport
+        className={clsx(styles.viewportOverrides, className)}
+    >
+        {path !== undefined ? <RelPath path={path!} /> : undefined}
+        {children}
+    </Viewport>
+);
+
+export default DefaultPage;
\ No newline at end of file
-- 
cgit v1.2.3

