import { t } from '../../i18n.js';
import { checkLicenseStatus } from '../../ui/license.js';
export async function renderLicense(container) {
const status = await checkLicenseStatus();
container.innerHTML = `
${t('license_management')}
${t('license_intro')}
${t('machine_id')}
${t('copy')}
${status.hwid}
${status.valid ? `
${t('expiry_info')}
${t('valid_until', { date: `${status.data.expiry} ` })}
` : ''}
${t('activate_license_title')}
${t('activate_license_btn')}
`;
bindLicenseEvents(container);
}
function bindLicenseEvents(container) {
const copyBtn = container.querySelector('#copy-hwid-btn');
if (copyBtn) {
copyBtn.onclick = () => {
const hwid = container.querySelector('code').textContent;
navigator.clipboard.writeText(hwid);
// Simple visual feedback
const icon = copyBtn.querySelector('i');
icon.className = 'fas fa-check';
setTimeout(() => icon.className = 'fas fa-copy', 2000);
};
}
const activateBtn = container.querySelector('#activate-license-btn');
if (activateBtn) {
activateBtn.onclick = async () => {
const key = container.querySelector('#license-key-input').value.trim();
if (!key) {
alert(t('enter_license_key'));
return;
}
activateBtn.disabled = true;
activateBtn.innerHTML = ` ${t('verifying')}`;
try {
const res = await fetch('/api/license/activate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ key })
});
const result = await res.json();
if (result.success) {
alert(t('license_activated_success'));
location.reload();
} else {
alert(t('activation_failed') + result.message);
}
} catch (err) {
alert(t('connection_error') + err.message);
} finally {
activateBtn.disabled = false;
activateBtn.innerHTML = ` ${t('activate_license_btn')}`;
}
};
}
}