import { BacklinksSearchCard } from "./BacklinksSearchCard"; import { BacklinksBody } from "./BacklinksPageContent"; import type { BacklinksPageProps } from "./backlinksPageTypes"; import { navigateToBacklinksHistory, navigateToBacklinksSearch, navigateToBacklinksTab, useBacklinksPageData, } from "./useBacklinksPageData"; import { useBacklinksFilters } from "./useBacklinksFilters"; import { useBacklinksSearchHistory } from "@/client/hooks/useBacklinksSearchHistory"; import { getStandardErrorMessage } from "@/client/lib/error-messages"; export function BacklinksPage({ projectId, searchState, navigate, }: BacklinksPageProps) { const filters = useBacklinksFilters(); const { accessStatus, accessStatusErrorMessage, accessStatusQuery, activeTabErrorMessage, backlinksDisabledByError, backlinksEnabled, overviewErrorMessage, overviewQuery, referringDomainsQuery, searchCardInitialValues, testAccessMutation, topPagesQuery, } = useBacklinksPageData({ projectId, searchState, }); const { history, isLoaded: historyLoaded, addSearch, removeHistoryItem, } = useBacklinksSearchHistory(projectId); const handleHistorySelect = (item: { target: string; scope: "domain" | "page"; }) => { navigateToBacklinksSearch(navigate, { target: item.target, scope: item.scope, }); }; return (

Backlinks

Understand who links to a site, what changed recently, and which pages attract links.

{!accessStatusQuery.isLoading && backlinksEnabled && !backlinksDisabledByError ? ( { navigateToBacklinksSearch(navigate, values); addSearch({ target: values.target, scope: values.scope }); }} /> ) : null} void accessStatusQuery.refetch()} onSelectHistoryItem={handleHistorySelect} onShowHistory={() => navigateToBacklinksHistory(navigate)} onSetActiveTab={(tab) => navigateToBacklinksTab(navigate, tab)} onRetryOverview={() => void overviewQuery.refetch()} onTestAccess={() => testAccessMutation.mutate()} />
); }