/
F1lya
/
Modal_Window
Обзор
Документация
Войти
/
F1lya
/
Modal_Window
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Button.tsx
42 строки
1 KB
F1lya
upload files
20 окт 2025, 14:17
20 окт 2025, 14:17
f9aac0b
Код
Авторство
О чём код?
import React from 'react'; import './Button.css'; interface ButtonProps { children: React.ReactNode; onClick?: () => void; disabled?: boolean; variant?: 'primary' | 'success' | 'secondary' | 'danger'; size?: 'small' | 'medium' | 'large'; type?: 'button' | 'submit'; loading?: boolean; className?: string; } export const Button: React.FC<ButtonProps> = ({ children, onClick, disabled = false, variant = 'primary', size = 'medium', type = 'button', loading = false, className = '' }) => { const baseClass = 'btn'; const variantClass = `btn--${variant}`; const sizeClass = `btn--${size}`; const loadingClass = loading ? 'btn--loading' : ''; return ( <button type={type} className={`${baseClass} ${variantClass} ${sizeClass} ${loadingClass} ${className}`} onClick={onClick} disabled={disabled || loading} aria-busy={loading} > {loading && <span className="btn__spinner" aria-hidden="true"></span>} <span className="btn__content">{children}</span> </button> ); };