import { CalendarDays, Loader2, SlidersHorizontal, Table } from "lucide-react"; import { SegmentedToggle } from "@/client/components/SegmentedToggle"; import { ExportMenu, MoreMenu } from "./ToolbarMenus"; export function RankTrackingTableToolbar({ showFilters, onToggleFilters, activeFilterCount, isRunning, latestRun, keywordCount, viewMode, onViewModeChange, historyAvailable, onExport, onExportToSheets, onCopyKeywords, onCheckNow, onRefreshMetrics, metricsRefreshing, checkBusy, checkDisabled, hasData, }: { showFilters: boolean; onToggleFilters: () => void; activeFilterCount: number; isRunning: boolean; latestRun: | { status: string; keywordsChecked: number; keywordsTotal: number } | null | undefined; keywordCount: number; viewMode: "table" | "history"; onViewModeChange: (v: "table" | "history") => void; historyAvailable: boolean; onExport: () => void; onExportToSheets: () => void; onCopyKeywords: () => void; onCheckNow: () => void; onRefreshMetrics: () => void; metricsRefreshing: boolean; checkBusy: boolean; checkDisabled: boolean; hasData: boolean; }) { return (
{/* History needs at least two checks to compare; until then the toggle would only offer a worse copy of the Latest table. */} {historyAvailable && ( , label: "Latest", }, { value: "history" as const, icon: , label: "History", }, ]} value={viewMode} onChange={onViewModeChange} /> )} {isRunning && latestRun ? (
{latestRun.status === "pending" ? "Preparing..." : `Getting rankings for ${latestRun.keywordsTotal || "?"} keyword${latestRun.keywordsTotal !== 1 ? "s" : ""}...`}{" "} {latestRun.keywordsChecked}/{latestRun.keywordsTotal || "?"} {latestRun.keywordsTotal > 0 && ( )}
) : ( {keywordCount} keywords )}
); }