"use client" import type { Filter } from "@/components/reui/filters" import type { Backup } from "@/lib/data" import { applyReuiFilters } from "@/lib/data-filters/apply-reui-filters" import { BACKUP_FILTER_ACCESSORS, BACKUP_FILTER_FIELDS, } from "@/lib/data-filters/backup-filter-fields" import { DataPageCard } from "@/components/data-page-card" import { DataPageToolbar } from "@/components/data-page-toolbar" import { BackupsDataGrid } from "@/components/data-grids/backups-data-grid" import { Button } from "@/components/ui/button" import { PlusIcon } from "lucide-react" type KindFilter = "all" | "auto" | "manual" export function BackupsHistory({ backups, kindFilter, onKindFilterChange, search, onSearchChange, filters, onFiltersChange, onDownload, onRestore, onDelete, onCreate, }: { backups: Backup[] kindFilter: KindFilter onKindFilterChange: (value: KindFilter) => void search: string onSearchChange: (value: string) => void filters: Filter[] onFiltersChange: (filters: Filter[]) => void onDownload: (id: string, filename: string) => void onRestore: (backup: Backup) => void onDelete: (backup: Backup) => void onCreate: () => void }) { const autoCount = backups.filter((b) => b.kind === "auto").length const manualCount = backups.filter((b) => b.kind === "manual").length const byKind = kindFilter === "all" ? backups : backups.filter((b) => b.kind === kindFilter) const q = search.trim().toLowerCase() const searched = q ? byKind.filter((b) => [b.filename, b.server, b.notes].some((v) => v.toLowerCase().includes(q)), ) : byKind const filtered = applyReuiFilters(searched, filters, BACKUP_FILTER_ACCESSORS) const isEmptyAll = backups.length === 0 return ( Новый бэкап ) : null } /> ) }