import { useState } from "react"; import { Helmet } from "react-helmet"; import { faArrowUpRightFromSquare, faBookOpen } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useNavigate } from "@tanstack/react-router"; import { Button, Card, CardTitle, FormControl, Input } from "@app/components/v2"; import { useWorkspace } from "@app/context"; import { useSaveIntegrationAccessToken } from "@app/hooks/api"; export const QoveryAuthorizePage = () => { const navigate = useNavigate(); const { currentWorkspace } = useWorkspace(); const { mutateAsync } = useSaveIntegrationAccessToken(); const [accessToken, setAccessToken] = useState(""); const [accessTokenErrorText, setAccessTokenErrorText] = useState(""); const [isLoading, setIsLoading] = useState(false); const handleButtonClick = async () => { try { setAccessTokenErrorText(""); if (accessToken.length === 0) { setAccessTokenErrorText("Access token cannot be blank"); return; } setIsLoading(true); const integrationAuth = await mutateAsync({ workspaceId: currentWorkspace.id, integration: "qovery", accessToken }); setIsLoading(false); navigate({ to: "/secret-manager/$projectId/integrations/qovery/create", params: { projectId: currentWorkspace.id }, search: { integrationAuthId: integrationAuth.id } }); } catch (err) { console.error(err); } }; return (