import { AlertCircle, ChevronRight, Key, Loader2 } from "lucide-react"; import { Button } from "@/components/ds/ui/button"; import { Input } from "@/components/ds/ui/input"; import { Label } from "@/components/ds/ui/label"; import { Alert, AlertDescription } from "@/components/ds/ui/alert"; import { useTranslate } from "ra-core"; import { validateAccessToken } from "../validators"; interface ManagedTokenStepProps { accessToken: string; error: string | null; isFetching: boolean; onTokenChange: (value: string) => void; onFetchOrgs: () => void; onBack: () => void; } export function ManagedTokenStep({ accessToken, error, isFetching, onTokenChange, onFetchOrgs, onBack, }: ManagedTokenStepProps) { const translate = useTranslate(); const validation = validateAccessToken(accessToken); const isValid = validation.valid; // Keyboard shortcuts const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === "Enter" && isValid && !isFetching) { e.preventDefault(); onFetchOrgs(); } else if (e.key === "Escape" && !isFetching) { e.preventDefault(); onBack(); } }; return (
{translate("setup.managedTokenSubtitle")}
{translate("setup.generateAt")}{" "} supabase.com/dashboard/tokens