Есть несколько кнопок, с помощью которых можно поделиться ссылкой в соц.сетях. Объект с данными для них выглядит так:
const socialData = {
facebook: {
icon: <FacebookIcon />,
share: url => {
window.FB.ui({
method: 'share',
href: url,
});
},
},
messenger: {
icon: <ChatIcon />,
share: url => {
window.FB.ui({
method: 'send',
link: url,
});
},
},
};
В каждом объекте есть соответствующий метод для функции на клик. Я хочу чтобы функция была одна, но имела в себе пропс, который бы указывал, какой именно метод должен сейчас сработать.
Вот так выглядит компонент кнопки. Он должен принимать в себя параметр url, которым пользователь будет делиться, и такой себе проп method, который должен дать функции понять, метод в каком именно объекте должен вызваться.
export const SocialButtonShare = ({method, url}) => {
const { facebook, twitter, email, messenger } = socialData;
return (
<IconButton onClick={() => method.share(url)}>{method.icon}</IconButton>
)
}
Как написать рабочий вариант подобного? То есть, если prop method="facebook", на клик должен сработать метод facebook.share(), и иконка должна быть соответственно facebook.icon.