klg-asutk-app/components/ReflyLogo.tsx
Yuriy e9ef17ba16 KLG ASUTK: единый промт — персонал ПЛГ, ВС, заявки, аудиты, риски, пользователи, контроль ЛГ, ТО, дефекты, настройки, справка, логотип REFLY
- Персонал ПЛГ: демо-программы, таблица прохождений, кнопки Добавить/Редактировать/Экспорт
- ВС: AircraftEditModal, кнопка Редактировать в строке
- Заявки: Создать по шаблону, 5 демо-заявок
- Аудиты: AuditEditModal, чек-лист замечаний, auditsApi.update
- Риски: RiskDetailModal при клике, Скачать отчёт, Закрыть
- Пользователи: таблица с демо (10), CRUD, Экспорт, поиск и фильтры
- Контроль ЛГ: вкладка с 7 демо-записями, модалка, Скачать сертификат
- Тех. обслуживание: демо-наряды при ошибке API, Скачать наряд
- Дефекты: 7 демо-дефектов, детальный просмотр, цвет по серьёзности
- Настройки: Профиль организации, Шаблоны, Справочники, Экспорт/Импорт
- Справка: HelpDocumentModal при клике, оглавление, Скачать PDF
- ReflyLogo: компонент, Sidebar и страница логина

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 16:19:39 +03:00

40 lines
1.6 KiB
TypeScript

'use client';
interface Props {
iconSize?: number;
showText?: boolean;
className?: string;
/** light = белый на зелёном (сайдбар), dark = зелёный на светлом (логин) */
variant?: 'light' | 'dark';
}
const strokeColor = (v: 'light' | 'dark') => (v === 'light' ? 'white' : '#4CAF50');
export default function ReflyLogo({ iconSize = 40, showText = true, className = '', variant = 'light' }: Props) {
const stroke = strokeColor(variant);
return (
<div className={`flex items-center gap-2 ${className}`}>
<svg
width={iconSize}
height={iconSize}
viewBox="0 0 40 40"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="shrink-0"
aria-hidden
>
<circle cx="20" cy="20" r="19" fill={variant === 'light' ? 'rgba(255,255,255,0.2)' : 'rgba(76,175,80,0.15)'} stroke={stroke} strokeWidth="1.5" />
<path d="M12 20 L20 12 L28 20 L20 28 Z" fill="none" stroke={stroke} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M14 20 L26 20" stroke={stroke} strokeWidth="1.5" strokeLinecap="round" />
<path d="M20 14 L20 26" stroke={stroke} strokeWidth="1.5" strokeLinecap="round" />
<path d="M16 16 L24 24 M24 16 L16 24" stroke={stroke} strokeWidth="1" strokeLinecap="round" opacity="0.8" />
</svg>
{showText && (
<span className={`text-xl font-bold tracking-wider whitespace-nowrap ${variant === 'light' ? 'text-white' : 'text-primary-600'}`}>
REFLY
</span>
)}
</div>
);
}