"use client";
import { useEffect, useRef } from "react";
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table";
import { Credentials } from "@/lib/types";
import { CopyButton } from "@/components/ui/copybutton";
import { Button } from "@/components/ui/button";
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
import { ExternalLink } from "lucide-react";
import { getAuth } from "@/lib/utils";
import { AppInfo } from "../FormContainer";
import { KeyRound } from "lucide-react";
import { forwardRef } from "react";
import ClientOnly from "../ClientOnly";
interface ResultTableProps {
credentials: Credentials;
appInfo: AppInfo;
}
const renderTableRow = (label: string, value: string | undefined) => (
{label}
{value}
{value && }
);
const ResultTable: React.FC = ({ credentials, appInfo }) => {
const scrollToRef = useRef(null);
const { instanceUrl, scopes } = appInfo;
const {
id,
name,
website,
redirect_uri,
client_id,
client_secret,
vapid_key,
} = credentials;
const isLocal = redirect_uri === "urn:ietf:wg:oauth:2.0:oob";
useEffect(() => {
if (scrollToRef.current) {
scrollToRef.current.scrollIntoView({ behavior: "smooth" });
}
}, []);
return (
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)}
)}
{isLocal ? (
) : (
Need an Access Token?
Set the Redirect URI as{" "}
urn:ietf:wg:oauth:2.0:oob
{" "}
to obtain your access token.
)}
);
};
export default ResultTable;