import React, { useEffect, useState } from 'react'; import { createPortal } from 'react-dom'; import { ipcChannels } from '../../../shared/ipc/contracts'; import { EULA_CURRENT_VERSION } from '../../../shared/license/eulaVersion'; import type { LicenseSnapshot } from '../../../shared/license/licenseSnapshot'; import { EULA_RU_MARKDOWN } from '../../legal/eulaRu'; import { getDndApi } from '../../shared/dndApi'; import { Button } from '../../shared/ui/controls'; import styles from '../EditorApp.module.css'; type LicenseTokenModalProps = { open: boolean; onClose: () => void; onSaved: () => void; }; export function LicenseTokenModal({ open, onClose, onSaved }: LicenseTokenModalProps) { const [token, setToken] = useState(''); const [saving, setSaving] = useState(false); const [error, setError] = useState(null); useEffect(() => { if (!open) return; setToken(''); setSaving(false); setError(null); }, [open]); useEffect(() => { if (!open) return; const onKey = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', onKey); return () => window.removeEventListener('keydown', onKey); }, [onClose, open]); if (!open) return null; return createPortal( <>
КЛЮЧ