/
DnTyr
/
Password-Development
Обзор
Документация
Войти
/
DnTyr
/
Password-Development
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/components/Modal.js
59 строк
2 KB
DT
first_commit
03 июн 2026, 10:22
03 июн 2026, 10:22
357cb35
Код
Авторство
О чём код?
import React from 'react'; import { X } from 'lucide-react'; import { useTranslation } from "react-i18next"; const Modal = ({ type, onClose }) => { const { t } = useTranslation(); const content = { howItWorks: { title: t("Как это работает?"), text: t("modal_how_it_works_text") }, privacy: { title: t("Политика конфиденциальности"), text: t("modal_privacy_text") }, copyright: { title: t("© Авторские права"), text: t("modal_copyright_text") }, contacts: { title: t("Контакты"), text: t("modal_contacts_text") } }; if (!type) return null; return ( <div className="modal-overlay" onClick={onClose}> <div className="modal-content" onClick={e => e.stopPropagation()}> <button className="modal-close" onClick={onClose}> <span>{t("close_button")}</span> <X size={20} color="#9c4242" /> </button> <h2>{content[type].title}</h2> <div className="modal-body"> <div style={{ whiteSpace: 'pre-line' }}> {content[type].text.split('\n').map((line, index) => { // Регулярное выражение ищет строки вида "1. Заголовок" const isHeader = /^\d+\.\s/.test(line); return ( <span key={index} style={{ color: isHeader ? 'var(--accent-color)' : 'inherit', // Используй здесь переменную цвета своего заголовка fontWeight: isHeader ? '600' : 'normal' }}> {line}{'\n'} </span> ); })} </div> </div> </div> </div> ); }; export default Modal;