diff --git a/src/App.svelte b/src/App.svelte
index 523ec20..9c051b1 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -37,8 +37,10 @@
on:click={() => {
$loginStore = null;
localStorage.removeItem("login-session");
- }}>Logout
+ Logout
+
{/if}
@@ -52,7 +54,6 @@
{/each}
-
{sidebarSelection.name}
{/if}
@@ -120,7 +121,8 @@
height: calc(100% - 70px);
#sidebar {
- width: 200px;
+ width: 150px;
+ min-width: 150px;
button {
background-color: #2c2c2c;
diff --git a/src/app.scss b/src/app.scss
index c4ba269..3bad92b 100644
--- a/src/app.scss
+++ b/src/app.scss
@@ -61,6 +61,7 @@ body {
margin: 0;
}
-code {
+code,
+.code-font {
font-family: 'Fira Code', monospace;
}
diff --git a/src/components/Flags.svelte b/src/components/Flags.svelte
index 29763fc..9c83c72 100644
--- a/src/components/Flags.svelte
+++ b/src/components/Flags.svelte
@@ -1,6 +1,6 @@
+
+{#if noCPair(redirect)}
+
+ {redirect.server.src} |
+ |
+ |
+ |
+ |
+
+{:else}
+
+ {redirect.client.src} |
+ |
+ |
+ |
+
+ {#if !noSPair(redirect)}
+
+ {/if}
+
+ |
+
+{/if}
+
+
diff --git a/src/components/RouteRow.svelte b/src/components/RouteRow.svelte
new file mode 100644
index 0000000..6e8c032
--- /dev/null
+++ b/src/components/RouteRow.svelte
@@ -0,0 +1,52 @@
+
+
+{#if noCPair(route)}
+
+ {route.server.src} |
+ |
+ |
+ |
+ |
+
+{:else}
+
+ {route.client.src} |
+ |
+ |
+ |
+
+ {#if !noSPair(route)}
+
+ {/if}
+
+ |
+
+{/if}
+
+
diff --git a/src/types/cspair.ts b/src/types/cspair.ts
new file mode 100644
index 0000000..2baed15
--- /dev/null
+++ b/src/types/cspair.ts
@@ -0,0 +1,11 @@
+export type CSPair = {client: T; server: T} | CSPairNotC | CSPairNotS;
+export type CSPairNotC = {client: null; server: T};
+export type CSPairNotS = {client: T; server: null};
+
+export function noCPair(pair: CSPair): pair is CSPairNotC {
+ return pair.client == null;
+}
+
+export function noSPair(pair: CSPair): pair is CSPairNotS {
+ return pair.server == null;
+}
diff --git a/src/types/target.ts b/src/types/target.ts
new file mode 100644
index 0000000..dbdb84c
--- /dev/null
+++ b/src/types/target.ts
@@ -0,0 +1,39 @@
+export interface Route {
+ src: string;
+ dst: string;
+ flags: number;
+ active: boolean;
+}
+
+export interface Redirect {
+ src: string;
+ dst: string;
+ flags: number;
+ active: boolean;
+}
+
+export function routeEqual(a: Route, b: Route): boolean {
+ if (b == null) return false;
+ return a.src === b.src && a.dst === b.dst && a.flags === b.flags && a.active === b.active;
+}
+
+export function redirectEqual(a: Redirect, b: Redirect): boolean {
+ if (b == null) return false;
+ return a.src === b.src && a.dst === b.dst && a.flags === b.flags && a.active === b.active;
+}
+
+export const routeKeys = [
+ {char: "p", name: "Prefix Path"},
+ {char: "a", name: "Absolute Path"},
+ {char: "c", name: "CORS"},
+ {char: "s", name: "Secure Mode"},
+ {char: "h", name: "Forward Host"},
+ {char: "f", name: "Forward Address"},
+ {char: "i", name: "Ignore Certificate"},
+ {char: "w", name: "Websocket"},
+];
+
+export const redirectKeys = [
+ {char: "p", name: "Prefix Path"},
+ {char: "a", name: "Absolute Path"},
+];
diff --git a/src/views/GeneralView.svelte b/src/views/GeneralView.svelte
index 7360a9e..6c5f777 100644
--- a/src/views/GeneralView.svelte
+++ b/src/views/GeneralView.svelte
@@ -1 +1 @@
-No options available here
+Warning: This is currently still under development
diff --git a/src/views/OrchidView.svelte b/src/views/OrchidView.svelte
index ad7456e..6c5f777 100644
--- a/src/views/OrchidView.svelte
+++ b/src/views/OrchidView.svelte
@@ -1 +1 @@
-No options available here: {import.meta.env.VITE_API_ORCHID}
+Warning: This is currently still under development
diff --git a/src/views/VioletView.svelte b/src/views/VioletView.svelte
index 9be9432..fd3711c 100644
--- a/src/views/VioletView.svelte
+++ b/src/views/VioletView.svelte
@@ -1,67 +1,30 @@
+
+ Warning: This is currently still under development and does not update the routes and redirects on the server
+
+
Routes
{#await promiseForRoutes}
Loading...
{:then}
{:catch err}
{err}
@@ -141,27 +94,24 @@
Loading...
{:then}
{:catch err}
{err}
@@ -169,12 +119,22 @@