30 lines
1.3 KiB
React
30 lines
1.3 KiB
React
import React from 'react';
|
|
import './ExceptionVariants.css';
|
|
|
|
const PRESET = {
|
|
'403': { emoji: '🔒', title: '403 禁止访问', desc: '抱歉,你没有权限访问此页面。' },
|
|
'404': { emoji: '🔍', title: '404 页面不存在', desc: '你访问的页面已被移除或从未存在。' },
|
|
'500': { emoji: '⚙️', title: '500 服务器错误', desc: '服务器开小差了,请稍后再试。' },
|
|
'502': { emoji: '🔌', title: '502 网关错误', desc: '网关无响应,请检查网络后重试。' }
|
|
};
|
|
|
|
export default function ExceptionVariants({ type = '404', emoji, title, desc, onHome, onRetry }) {
|
|
const p = PRESET[type] || {};
|
|
const resolved = {
|
|
emoji: emoji || p.emoji || '⚠️',
|
|
title: title || p.title || '出错了',
|
|
desc: desc || p.desc || ''
|
|
};
|
|
return (
|
|
<div className="aa-exception">
|
|
<div className="aa-exception-emoji">{resolved.emoji}</div>
|
|
<div className="aa-exception-title">{resolved.title}</div>
|
|
{resolved.desc ? <div className="aa-exception-desc">{resolved.desc}</div> : null}
|
|
<div className="aa-exception-actions">
|
|
<button className="aa-exception-btn primary" onClick={onHome}>返回首页</button>
|
|
<button className="aa-exception-btn" onClick={onRetry}>重试</button>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|