export const refreshCSRFToken = async (): Promise<string | null> => {
    try {
        const response = await fetch('/test-csrf', {
            method: 'GET',
            credentials: 'same-origin',
        });
        
        if (response.ok) {
            const data = await response.json();
            const newToken = data.csrf_token;
            
            // Update the meta tag
            const metaTag = document.querySelector('meta[name="csrf-token"]') as HTMLMetaElement;
            if (metaTag) {
                metaTag.content = newToken;
            }
            
            return newToken;
        }
        return null;
    } catch (error) {
        console.error('Failed to refresh CSRF token:', error);
        return null;
    }
};

export const ensureCSRFToken = async (): Promise<string | null> => {
    let token = document.querySelector('meta[name="csrf-token"]')?.getAttribute('content');
    
    if (!token) {
        token = await refreshCSRFToken();
    }
    
    return token;
};