feat: persistent registration toast, click to dismiss
This commit is contained in:
@@ -141,7 +141,7 @@ const PageMarket = {
|
|||||||
if (!email || !pass) { Toast.show('请输入邮箱和密码', 'error'); return; }
|
if (!email || !pass) { Toast.show('请输入邮箱和密码', 'error'); return; }
|
||||||
const res = await fetch('/api/market/register', { method: 'POST', headers: {'Content-Type':'application/json'}, body: JSON.stringify({email, password: pass, passwordConfirm: pass, name}) });
|
const res = await fetch('/api/market/register', { method: 'POST', headers: {'Content-Type':'application/json'}, body: JSON.stringify({email, password: pass, passwordConfirm: pass, name}) });
|
||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
Toast.show(data.error ? '注册失败' : '注册成功,请查收验证邮件', data.error ? 'error' : 'success');
|
Toast.show(data.error ? '注册失败' : '注册成功,请查收验证邮件(点击关闭)', data.error ? 'error' : 'success', data.error ? 3000 : 0);
|
||||||
if (!data.error) overlay.remove();
|
if (!data.error) overlay.remove();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,15 +13,26 @@ const Toast = {
|
|||||||
const toast = document.createElement('div');
|
const toast = document.createElement('div');
|
||||||
toast.className = `toast ${type}`;
|
toast.className = `toast ${type}`;
|
||||||
toast.textContent = message;
|
toast.textContent = message;
|
||||||
|
toast.style.cursor = 'pointer';
|
||||||
|
toast.addEventListener('click', () => {
|
||||||
|
toast.style.opacity = '0';
|
||||||
|
toast.style.transform = 'translateY(20px)';
|
||||||
|
toast.style.transition = 'all 0.2s ease';
|
||||||
|
setTimeout(() => toast.remove(), 200);
|
||||||
|
});
|
||||||
this._container.appendChild(toast);
|
this._container.appendChild(toast);
|
||||||
|
|
||||||
|
if (duration > 0) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
if (toast.parentNode) {
|
||||||
toast.style.opacity = '0';
|
toast.style.opacity = '0';
|
||||||
toast.style.transform = 'translateX(100%)';
|
toast.style.transform = 'translateY(20px)';
|
||||||
toast.style.transition = 'all 0.3s ease';
|
toast.style.transition = 'all 0.3s ease';
|
||||||
setTimeout(() => toast.remove(), 300);
|
setTimeout(() => toast.remove(), 300);
|
||||||
|
}
|
||||||
}, duration);
|
}, duration);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
window.Toast = Toast;
|
window.Toast = Toast;
|
||||||
|
|||||||
Reference in New Issue
Block a user