Rev 5670 | Rev 5737 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState } from 'react'
import RecommendIcon from '@mui/icons-material/Recommend'
import FavoriteIcon from '@mui/icons-material/Favorite'
import VolunteerActivismIcon from '@mui/icons-material/VolunteerActivism'
import { debounce } from '../../../utils'
export const ReactionButton = () => {
const [settedReaction, setSettedReaction] = useState('r')
const [showReactions, setShowReactions] = useState(false)
const reactions = [
{
type: 'r',
icon: <RecommendIcon />,
},
{
type: 'f',
icon: <FavoriteIcon />,
},
{
type: 'v',
icon: <VolunteerActivismIcon />,
},
]
const onHover = debounce(() => setShowReactions(true), 1000)
return (
<button type="button" className="reaction-btn" onMouseEnter={onHover}>
<div className={`reactions ${showReactions ? 'active' : ''}`}>
{reactions.map((reaction) => (
<button
key={reaction.type}
onClick={() => setSettedReaction(reaction.type)}
>
{reaction.icon}
</button>
))}
</div>
{reactions.map((reaction) =>
reaction.type === settedReaction ? reaction.icon : null
)}
</button>
)
}