import { useState } from "react"; import { createFileRoute, useNavigate } from "@tanstack/react-router"; import { useQuery, useQueryClient } from "@tanstack/react-query"; import { getRankTrackingConfigs } from "@/serverFunctions/rank-tracking"; import { RankTrackingDomainDetail } from "@/client/features/rank-tracking/RankTrackingDomainDetail"; import { RankTrackingConfigModal } from "@/client/features/rank-tracking/RankTrackingConfigModal"; export const Route = createFileRoute( "/_project/p/$projectId/rank-tracking/$configId", )({ component: RankTrackingConfigRoute, }); function RankTrackingConfigRoute() { const { projectId, configId } = Route.useParams(); const navigate = useNavigate(); const queryClient = useQueryClient(); const [showConfigModal, setShowConfigModal] = useState(false); const { data: configs, isLoading } = useQuery({ queryKey: ["rankTrackingConfigs", projectId], queryFn: () => getRankTrackingConfigs({ data: { projectId } }), }); const config = configs?.find((c) => c.id === configId) ?? null; const invalidateConfigs = () => { void queryClient.invalidateQueries({ queryKey: ["rankTrackingConfigs", projectId], }); void queryClient.invalidateQueries({ queryKey: ["rankTrackingConfigSummaries", projectId], }); }; const handleBack = () => { void navigate({ to: "/p/$projectId/rank-tracking", params: { projectId }, }); }; if (isLoading) return null; if (!config) { return ( <>

Domain configuration not found.

); } return ( <> setShowConfigModal(true)} /> {showConfigModal && ( setShowConfigModal(false)} onSaved={() => { setShowConfigModal(false); invalidateConfigs(); }} /> )} ); }