+
+
+
+ Type
+ Value
+
+
+ {credentials && (
+
+ {renderTableRow("ID", id)}
+ {renderTableRow("Name", name)}
+ {renderTableRow("Website", website || "")}
+ {renderTableRow("Redirect URI", redirect_uri)}
+ {renderTableRow("Client ID", client_id)}
+ {renderTableRow("Client Secret", client_secret)}
+ {renderTableRow("Vapid Key", vapid_key)}
+
+ )}
+
+ {redirect_uri === "urn:ietf:wg:oauth:2.0:oob" && (
+
+ )}
+
+ );
+};
+
+export default ResultTable;
diff --git a/components/ui/alert.tsx b/components/ui/alert.tsx
new file mode 100644
index 0000000..9ddbc46
--- /dev/null
+++ b/components/ui/alert.tsx
@@ -0,0 +1,59 @@
+import * as React from "react"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const alertVariants = cva(
+ "relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11",
+ {
+ variants: {
+ variant: {
+ default: "bg-background text-foreground",
+ destructive:
+ "text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+ }
+)
+
+const Alert = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes