Rename product to OrbitWard

This commit is contained in:
Keith Smith
2026-05-26 21:24:54 -06:00
parent af72a6c563
commit 177bdcc8a7
41 changed files with 129 additions and 105 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>OrbitalWard</title>
<title>OrbitWard</title>
</head>
<body>
<div id="root"></div>
+2 -2
View File
@@ -1,11 +1,11 @@
{
"name": "orbitalward-frontend",
"name": "orbitward-frontend",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "orbitalward-frontend",
"name": "orbitward-frontend",
"version": "0.1.0",
"dependencies": {
"@vitejs/plugin-react": "^5.0.0",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "orbitalward-frontend",
"name": "orbitward-frontend",
"version": "0.1.0",
"private": true,
"type": "module",
+1 -1
View File
@@ -65,7 +65,7 @@ export function App() {
}
if (auth.loading) {
return <div className="flex min-h-screen items-center justify-center bg-[#090d13] text-sm text-slate-300">Loading OrbitalWard...</div>;
return <div className="flex min-h-screen items-center justify-center bg-[#090d13] text-sm text-slate-300">Loading OrbitWard...</div>;
}
if (!auth.user || !auth.token) {
+1 -1
View File
@@ -49,7 +49,7 @@ export function Shell({ children, currentPage, onPageChange, onSignOut, user }:
<Shield size={19} />
</div>
<div>
<div className="text-base font-semibold">OrbitalWard</div>
<div className="text-base font-semibold">OrbitWard</div>
<div className="text-xs text-slate-400">Monitoring appliance</div>
</div>
</div>
+14 -2
View File
@@ -3,10 +3,20 @@ import { useEffect, useMemo, useState } from "react";
import { api, login } from "../api/client";
import type { User } from "../types/api";
const TOKEN_KEY = "orbitalward_token";
const TOKEN_KEY = "orbitward_token";
const LEGACY_TOKEN_KEY = "orbitalward_token";
export function useAuth() {
const [token, setToken] = useState<string | null>(() => localStorage.getItem(TOKEN_KEY));
const [token, setToken] = useState<string | null>(() => {
const currentToken = localStorage.getItem(TOKEN_KEY);
if (currentToken) return currentToken;
const legacyToken = localStorage.getItem(LEGACY_TOKEN_KEY);
if (legacyToken) {
localStorage.setItem(TOKEN_KEY, legacyToken);
localStorage.removeItem(LEGACY_TOKEN_KEY);
}
return legacyToken;
});
const [user, setUser] = useState<User | null>(null);
const [loading, setLoading] = useState(Boolean(token));
@@ -26,6 +36,7 @@ export function useAuth() {
})
.catch(() => {
localStorage.removeItem(TOKEN_KEY);
localStorage.removeItem(LEGACY_TOKEN_KEY);
if (!cancelled) {
setToken(null);
setUser(null);
@@ -52,6 +63,7 @@ export function useAuth() {
},
signOut: () => {
localStorage.removeItem(TOKEN_KEY);
localStorage.removeItem(LEGACY_TOKEN_KEY);
setToken(null);
setUser(null);
},
+1 -1
View File
@@ -33,7 +33,7 @@ export function LoginPage({ onLogin }: LoginPageProps) {
<div className="flex h-10 w-10 items-center justify-center rounded-md bg-pulse text-slate-950">
<Shield size={22} />
</div>
<div className="text-lg font-semibold">OrbitalWard</div>
<div className="text-lg font-semibold">OrbitWard</div>
</div>
<div className="max-w-3xl pb-6">
<h1 className="max-w-2xl text-4xl font-semibold leading-tight lg:text-6xl">
+6 -6
View File
@@ -14,7 +14,7 @@ export function NotificationsPage({ token }: NotificationsPageProps) {
const [name, setName] = useState("");
const [channelType, setChannelType] = useState("generic_webhook");
const [url, setUrl] = useState("");
const [username, setUsername] = useState("OrbitalWard");
const [username, setUsername] = useState("OrbitWard");
const [enabled, setEnabled] = useState(true);
const [editingChannelId, setEditingChannelId] = useState<number | null>(null);
const [busyId, setBusyId] = useState<number | null>(null);
@@ -38,7 +38,7 @@ export function NotificationsPage({ token }: NotificationsPageProps) {
await api.updateNotificationChannel(token, editingChannelId, {
name,
channel_type: channelType,
settings: { username: username.trim() || "OrbitalWard" },
settings: { username: username.trim() || "OrbitWard" },
secret: url.trim() ? url.trim() : undefined,
is_enabled: enabled,
});
@@ -46,7 +46,7 @@ export function NotificationsPage({ token }: NotificationsPageProps) {
await api.createNotificationChannel(token, {
name,
channel_type: channelType,
settings: { username: username.trim() || "OrbitalWard" },
settings: { username: username.trim() || "OrbitWard" },
secret: url,
is_enabled: enabled,
});
@@ -65,7 +65,7 @@ export function NotificationsPage({ token }: NotificationsPageProps) {
setName(channel.name);
setChannelType(channel.channel_type);
setUrl("");
setUsername(String(channel.settings.username || "OrbitalWard"));
setUsername(String(channel.settings.username || "OrbitWard"));
setEnabled(channel.is_enabled);
setMessage(null);
}
@@ -75,7 +75,7 @@ export function NotificationsPage({ token }: NotificationsPageProps) {
setName("");
setChannelType("generic_webhook");
setUrl("");
setUsername("OrbitalWard");
setUsername("OrbitWard");
setEnabled(true);
}
@@ -180,7 +180,7 @@ export function NotificationsPage({ token }: NotificationsPageProps) {
<div key={channel.id} className="grid gap-3 p-4 md:grid-cols-[1fr_140px_90px_260px] md:items-center">
<div>
<div className="font-medium">{channel.name}</div>
<div className="text-sm text-slate-400">{String(channel.settings.username || "OrbitalWard")}</div>
<div className="text-sm text-slate-400">{String(channel.settings.username || "OrbitWard")}</div>
<div className="text-xs text-slate-500">{channel.has_secret ? "Secret stored" : "No secret"}</div>
</div>
<div className="text-sm text-slate-300">{channel.channel_type}</div>