import { h } from 'preact';
import { useState } from 'preact/hooks';
import PropTypes from 'prop-types';
import { articlePropTypes } from '../../common-prop-types';
export const SaveButton = ({
article,
isBookmarked: isBookmarkedProps,
onClick,
saveable = true,
}) => {
const [buttonText, setButtonText] = useState(
isBookmarkedProps ? 'Saved' : 'Save',
);
const [isBookmarked, setIsBookmarked] = useState(isBookmarkedProps);
const mouseMove = (_e) => {
setButtonText(isBookmarked ? 'Unsave' : 'Save');
};
const mouseOut = (_e) => {
setButtonText(isBookmarked ? 'Saved' : 'Save');
};
const handleClick = (_e) => {
onClick(_e);
setButtonText(isBookmarked ? 'Save' : 'Saved');
setIsBookmarked((prevState) => !prevState);
};
if (article.class_name === 'Article' && saveable) {
return (
);
}
if (article.class_name === 'User') {
return (
);
}
return null;
};
SaveButton.propTypes = {
article: articlePropTypes.isRequired,
isBookmarked: PropTypes.bool.isRequired,
onClick: PropTypes.func.isRequired,
saveable: PropTypes.bool.isRequired,
};
SaveButton.displayName = 'SaveButton';