async function uploadCV(file, onProgress) {
const form = new FormData();
form.append('file', file);
const xhr = new XMLHttpRequest();
xhr.open('POST', '/v1/api/candidats/me/cv');
xhr.setRequestHeader('Authorization', `Bearer ${token}`);
xhr.upload.onprogress = (e) => {
if (e.lengthComputable) onProgress(e.loaded / e.total);
};
return new Promise((resolve, reject) => {
xhr.onload = () => resolve(JSON.parse(xhr.response));
xhr.onerror = () => reject(new Error('Upload failed'));
xhr.send(form);
});
}