blob: 7b8b30358ee5f9975e59a0d0f38f9363688e04fd [file] [log] [blame]
import React, { useEffect, useState, useContext } from 'react';
import axios from 'axios';
import { UserContext } from '../../context/UserContext';
const UserStatusChecker = () => {
const { user } = useContext(UserContext); // 假设你在上下文中已经有 user 信息
const [statusMessage, setStatusMessage] = useState('');
const [statusType, setStatusType] = useState('normal'); // normal / warning / danger
useEffect(() => {
if (user?.id) {
checkUserShareRate(user.id);
}
}, [user]);
const checkUserShareRate = async (userId) => {
try {
const response = await axios.get(`/users/${userId}/share-rate`);
const message = response.data;
setStatusMessage(message);
if (message.includes('账号已被注销')) {
setStatusType('danger');
} else if (message.includes('警告')) {
setStatusType('warning');
} else {
setStatusType('normal');
}
} catch (error) {
console.error('获取用户状态失败:', error);
setStatusMessage('无法获取用户状态');
setStatusType('danger');
}
};
const getStatusStyle = () => {
switch (statusType) {
case 'warning':
return { backgroundColor: '#fff3cd', color: '#856404', padding: '10px', borderRadius: '8px' };
case 'danger':
return { backgroundColor: '#f8d7da', color: '#721c24', padding: '10px', borderRadius: '8px' };
default:
return { backgroundColor: '#d4edda', color: '#155724', padding: '10px', borderRadius: '8px' };
}
};
return (
<div style={{ marginTop: '20px' }}>
<div style={getStatusStyle()}>
<strong>账号状态提示:</strong> {statusMessage}
</div>
</div>
);
};
export default UserStatusChecker;