/* ============================================================
   MetaLab 共享工具函数 — 前后台公用，消除 DRY 重复
   ============================================================ */
'use strict';

/**
 * 获取 CSRF 令牌 — 优先从 cookie 读取（与服务端验证源一致，token 刷新后保持最新），
 * meta 标签作为后备（部分页面可能未设置 cookie）
 * @returns {string} CSRF 令牌，未找到时返回空字符串
 */
function getCSRFToken() {
    var match = document.cookie.match(/(?:^|;\s*)mlb_csrf=([^;]*)/);
    if (match && match[1]) return match[1];
    var meta = document.querySelector('meta[name="csrf-token"]');
    return meta ? meta.getAttribute('content') : '';
}

// 全局头像图片加载失败回退（替代 onerror 内联事件，满足 CSP 无 unsafe-inline）
document.addEventListener('error', function(e) {
    var img = e.target;
    if (img && img.tagName === 'IMG' && (img.classList.contains('nav-avatar') || img.classList.contains('user-avatar-img'))) {
        img.style.display = 'none';
        var next = img.nextElementSibling;
        if (next) next.style.display = 'flex';
    }
}, true);
