import React from "react"; import { Card, Button, Typography, Space, Tooltip } from "antd"; import { SyncOutlined } from "@ant-design/icons"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import "dayjs/locale/ru"; import type { UserRole } from "../../services/types"; // Настройка dayjs для русской локали и относительного времени dayjs.extend(relativeTime); dayjs.locale("ru"); const { Text } = Typography; interface SyncBlockProps { lastSyncAt: string | null; userRole: UserRole; onSync: () => void; isLoading?: boolean; } export const SyncBlock: React.FC = ({ lastSyncAt, userRole, onSync, isLoading = false, }) => { // Проверяем, есть ли права на синхронизацию const canSync = userRole === "OWNER" || userRole === "ADMIN"; // Форматируем дату последней синхронизации const formatLastSync = (dateStr: string | null): string => { if (!dateStr) { return "Никогда"; } const date = dayjs(dateStr); const formatted = date.format("DD.MM.YYYY HH:mm"); const relative = date.fromNow(); return `${formatted} (${relative})`; }; return (
Синхронизация данных Последняя синхронизация: {formatLastSync(lastSyncAt)}
Загружает справочники, накладные и пересчитывает рекомендации
); };