import "./WorktrunkInstallApprovalDetails.css"; import type { ApprovalRequestDetail } from "../api"; interface WorktrunkInstallApprovalDetailsProps { targetAction: ApprovalRequestDetail["targetAction"]; } function readString(value: unknown): string | null { return typeof value === "string" && value.trim().length > 0 ? value : null; } function readAsset(context: Record | undefined): { url: string | null; sha256: string | null } { if (!context) return { url: null, sha256: null }; const assets = context.assets; if (!assets || typeof assets !== "object") return { url: null, sha256: null }; const firstAsset = Object.values(assets as Record)[0]; if (!firstAsset || typeof firstAsset !== "object") return { url: null, sha256: null }; const asset = firstAsset as Record; return { url: readString(asset.url), sha256: readString(asset.sha256), }; } export function WorktrunkInstallApprovalDetails({ targetAction }: WorktrunkInstallApprovalDetailsProps) { const context = targetAction.context as Record | undefined; const version = readString(context?.version); const installPath = readString(context?.installPath) ?? targetAction.resourceId; const { url, sha256 } = readAsset(context); return (

Worktrunk install request

Version
{version ?? "Unknown"}
Asset URL
{url ?? "Unknown"}
SHA-256
{sha256 ?? "Unknown"}
Install path
{installPath ?? "Unknown"}
); }