aboutsummaryrefslogtreecommitdiff
path: root/templates/Default
diff options
context:
space:
mode:
Diffstat (limited to 'templates/Default')
-rw-r--r--templates/Default/default.module.scss4
-rw-r--r--templates/Default/index.tsx49
2 files changed, 53 insertions, 0 deletions
diff --git a/templates/Default/default.module.scss b/templates/Default/default.module.scss
new file mode 100644
index 0000000..ba6096f
--- /dev/null
+++ b/templates/Default/default.module.scss
@@ -0,0 +1,4 @@
+.viewportOverrides {
+ margin-top: 4em;
+ margin-bottom: 3em;
+} \ No newline at end of file
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