No more fake services

This commit is contained in:
Jordan Roher 2023-04-19 19:31:29 -07:00
parent 30636b25e2
commit 6a20ce0912
4 changed files with 170 additions and 168 deletions

146
public/services.json Normal file
View File

@ -0,0 +1,146 @@
[
{
"name": "Archivebox",
"uri": "https://archivebox.starbase80.dev",
"description": "Backup webpages",
"icon": {
"href": "/icons/archivebox.jpg"
}
},
{
"name": "Authelia",
"uri": "https://auth.starbase80.dev",
"description": "Authentication",
"icon": {
"href": "/icons/authelia.png"
}
},
{
"name": "Calibre",
"uri": "https://calibre.starbase80.dev",
"description": "eBook library",
"icon": {
"href": "/icons/calibre.png"
}
},
{
"name": "Gitea",
"uri": "https://git.starbase80.dev",
"description": "Code hosting",
"icon": {
"href": "/icons/gitea.svg"
}
},
{
"name": "Jellyfin",
"uri": "https://jellyfin.starbase80.dev",
"description": "Media server",
"icon": {
"href": "/icons/jellyfin.svg"
}
},
{
"name": "Mastodon",
"uri": "https://notclickable.social",
"description": "NotClickable.social",
"icon": {
"href": "/icons/mastodon.jpg"
}
},
{
"name": "Mealie",
"uri": "https://mealie.starbase80.dev",
"description": "Recipe manager",
"icon": {
"href": "/icons/mealie.jpg"
}
},
{
"name": "N8N",
"uri": "https://n8n.starbase80.dev",
"description": "Workflow automation",
"icon": {
"href": "/icons/n8n.jpg"
}
},
{
"name": "MeTube",
"uri": "https://metube.starbase80.dev",
"description": "Archive YouTube",
"icon": {
"href": "/icons/metube.jpg"
}
},
{
"name": "Miniflux",
"uri": "https://miniflux.starbase80.dev",
"description": "RSS server",
"icon": {
"href": "/icons/miniflux.jpg"
}
},
{
"name": "Portainer",
"uri": "https://portainer.starbase80.dev",
"description": "Docker management",
"icon": {
"href": "/icons/portainer.png"
}
},
{
"name": "Roher Twins",
"uri": "https://rohertwins.starbase80.dev",
"description": "Weekly newsletter",
"icon": {
"href": "/icons/ghost.jpg"
}
},
{
"name": "Roher Wiki",
"uri": "https://roherwiki.starbase80.dev",
"description": "Family wiki",
"icon": {
"href": "/icons/wikijs.svg"
}
},
{
"name": "Standard Notes",
"uri": "https://standardnotes.starbase80.dev",
"description": "Knowledge base",
"icon": {
"href": "/icons/standardnotes.png"
}
},
{
"name": "Vaultwarden",
"uri": "https://vaultwarden.starbase80.dev",
"description": "Password manager",
"icon": {
"href": "/icons/vaultwarden.svg"
}
},
{
"name": "Visual Studio Code",
"uri": "https://vscode.starbase80.dev",
"description": "Code editor",
"icon": {
"href": "/icons/vscode.jpg"
}
},
{
"name": "Wallabag",
"uri": "https://wallabag.starbase80.dev",
"description": "Read later",
"icon": {
"href": "/icons/wallabag.png"
}
},
{
"name": "Woodpecker",
"uri": "https://woodpecker.starbase80.dev",
"description": "Continuous integration",
"icon": {
"href": "/icons/woodpecker.jpg"
}
}
]

View File

@ -1,7 +1,8 @@
import React from "react";
import userServices from "../../public/services.json";
import { Header } from "../components/header";
import { Services } from "../components/services";
import { FAKE_SERVICES } from "../shared/types";
import { IService } from "../shared/types";
interface IProps {
title?: string;
@ -9,13 +10,15 @@ interface IProps {
}
export const IndexPage: React.FunctionComponent<IProps> = ({ icon, title }) => {
const mySerices = userServices as IService[];
return (
<div className="min-h-screen flex flex-row">
<div className="min-h-screen border-0 border-solid border-r border-r-gray-300 p-4 max-w-xs">
<Header title={title} icon={icon} />
</div>
<div className="min-h-screen p-4 flex-grow">
<Services services={FAKE_SERVICES} />
<Services services={mySerices} />
</div>
</div>
);

View File

@ -11,150 +11,3 @@ export interface IIcon {
title?: string;
alt?: string;
}
export const FAKE_SERVICES: IService[] = [
{
name: "Archivebox",
uri: "https://archivebox.starbase80.dev",
description: "Backup webpages",
icon: {
href: "/icons/archivebox.jpg",
},
},
{
name: "Authelia",
uri: "https://auth.starbase80.dev",
description: "Authentication",
icon: {
href: "/icons/authelia.png",
},
},
{
name: "Calibre",
uri: "https://calibre.starbase80.dev",
description: "eBook library",
icon: {
href: "/icons/calibre.png",
},
},
{
name: "Gitea",
uri: "https://git.starbase80.dev",
description: "Code hosting",
icon: {
href: "/icons/gitea.svg",
},
},
{
name: "Jellyfin",
uri: "https://jellyfin.starbase80.dev",
description: "Media server",
icon: {
href: "/icons/jellyfin.svg",
},
},
{
name: "Mastodon",
uri: "https://notclickable.social",
description: "NotClickable.social",
icon: {
href: "/icons/mastodon.jpg",
},
},
{
name: "Mealie",
uri: "https://mealie.starbase80.dev",
description: "Recipe manager",
icon: {
href: "/icons/mealie.jpg",
},
},
{
name: "N8N",
uri: "https://n8n.starbase80.dev",
description: "Workflow automation",
icon: {
href: "/icons/n8n.jpg",
},
},
{
name: "MeTube",
uri: "https://metube.starbase80.dev",
description: "Archive YouTube",
icon: {
href: "/icons/metube.jpg",
},
},
{
name: "Miniflux",
uri: "https://miniflux.starbase80.dev",
description: "RSS server",
icon: {
href: "/icons/miniflux.jpg",
},
},
{
name: "Portainer",
uri: "https://portainer.starbase80.dev",
description: "Docker management",
icon: {
href: "/icons/portainer.png",
},
},
{
name: "Roher Twins",
uri: "https://rohertwins.starbase80.dev",
description: "Weekly newsletter",
icon: {
href: "/icons/ghost.jpg",
},
},
{
name: "Roher Wiki",
uri: "https://roherwiki.starbase80.dev",
description: "Family wiki",
icon: {
href: "/icons/wikijs.svg",
},
},
{
name: "Standard Notes",
uri: "https://standardnotes.starbase80.dev",
description: "Knowledge base",
icon: {
href: "/icons/standardnotes.png",
},
},
{
name: "Vaultwarden",
uri: "https://vaultwarden.starbase80.dev",
description: "Password manager",
icon: {
href: "/icons/vaultwarden.svg",
},
},
{
name: "Visual Studio Code",
uri: "https://vscode.starbase80.dev",
description: "Code editor",
icon: {
href: "/icons/vscode.jpg",
},
},
{
name: "Wallabag",
uri: "https://wallabag.starbase80.dev",
description: "Read later",
icon: {
href: "/icons/wallabag.png",
},
},
{
name: "Woodpecker",
uri: "https://woodpecker.starbase80.dev",
description: "Continuous integration",
icon: {
href: "/icons/woodpecker.jpg",
},
},
];

View File

@ -1,21 +1,21 @@
{
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": true,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "Node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": true,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "Node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["src", "public"],
"references": [{ "path": "./tsconfig.node.json" }]
}