e.stopPropagation()}
+ onKeyDown={(e) => e.stopPropagation()}
+ >
+ {compatiableTags.map((t, i) => (
+
+ {props.unclickable && (
+
+ {t.name}
+
+ )}
+ {!props.unclickable && (
+
+ )}
+
+ ))}
+
+ );
+}
+
function RankColoring({ rank, author }: { rank: string; author: string }) {
switch (rank.toLocaleLowerCase()) {
case "default":
diff --git a/apps/www/src/components/feat/support/status-button.tsx b/apps/www/src/components/feat/support/status-button.tsx
new file mode 100644
index 0000000..3f6d6c8
--- /dev/null
+++ b/apps/www/src/components/feat/support/status-button.tsx
@@ -0,0 +1,36 @@
+"use client";
+
+import { Button } from "@/components/ui/button";
+import { Spinner } from "@/components/ui/spinner";
+import { Link } from "@/components/util/link";
+import useStatus from "@/lib/hooks/use-status";
+import { cn } from "@/lib/utils";
+
+export function StatusButton() {
+ const { loading, incidents, statusURL } = useStatus();
+
+ if (loading) return