"use client"; import { useRouter } from "next/navigation"; import type { ComponentProps } from "react"; import { Button } from "@kandev/ui/button"; import { Tooltip, TooltipContent, TooltipTrigger } from "@kandev/ui/tooltip"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, } from "@kandev/ui/dialog"; import { IconAlertTriangle, IconExternalLink } from "@tabler/icons-react"; import { useAppStore } from "@/components/state-provider"; import type { HealthIssue } from "@/lib/types/health"; type HealthIndicatorButtonProps = { hasIssues: boolean; onClick: () => void; size?: ComponentProps["size"]; }; export function HealthIndicatorButton({ hasIssues, onClick, size = "icon", }: HealthIndicatorButtonProps) { if (!hasIssues) return null; return ( Setup Issues ); } type HealthIssuesDialogProps = { open: boolean; onOpenChange: (open: boolean) => void; issues: HealthIssue[]; }; export function HealthIssuesDialog({ open, onOpenChange, issues }: HealthIssuesDialogProps) { const router = useRouter(); const workspaceId = useAppStore((state) => state.workspaces.activeId); const resolveUrl = (url: string) => url.replace("{workspaceId}", workspaceId ?? ""); return ( Setup Issues {issues.length === 1 ? "1 issue needs your attention" : `${issues.length} issues need your attention`}
{issues.map((issue) => (
{issue.title}
{issue.message}
))}
); }