blob: 3e94161e4a7af3aa54df398e4e7f92b764fafbce [file] [log] [blame]
import React, { useState } from 'react';
import { followUser, unfollowUser } from '../api/api_ljc';
const FollowButton = ({ userId, isFollowing, onFollowChange, style }) => {
const [loading, setLoading] = useState(false);
const handleFollow = async () => {
if (loading) return;
setLoading(true);
try {
console.log('FollowButton clicked, isFollowing:', isFollowing, 'userId:', userId);
if (isFollowing) {
const res = await unfollowUser(userId);
console.log('unfollowUser response:', res);
onFollowChange(false);
} else {
const res = await followUser(userId);
console.log('followUser response:', res);
onFollowChange(true);
}
} catch (error) {
alert('关注操作失败,请重试!');
console.error('关注操作失败:', error);
} finally {
setLoading(false);
}
};
return (
<button
onClick={handleFollow}
disabled={loading}
style={{
border: 'none',
outline: 'none',
borderRadius: 20,
padding: '6px 22px',
fontSize: 15,
fontWeight: 600,
cursor: loading ? 'not-allowed' : 'pointer',
background: isFollowing ? '#f5f5f5' : 'linear-gradient(90deg,#ff4b2b,#ff416c)',
color: isFollowing ? '#888' : '#fff',
boxShadow: isFollowing ? 'none' : '0 2px 8px #ff416c22',
transition: 'all 0.2s',
...style
}}
>
{loading ? '处理中...' : isFollowing ? '已关注' : '+ 关注'}
</button>
);
};
export default FollowButton;