@proca/widget
Version:
Proca is an open-source campaign toolkit designed to empower activists and organisations in their digital advocacy efforts. It provides a flexible and customisable platform for creating and managing online petitions, email campaigns, and other forms of di
48 lines (41 loc) • 1.2 kB
JavaScript
// import React from "react";
import React from "react";
import { Button, CircularProgress } from "@material-ui/core";
import LockIcon from "@material-ui/icons/Lock";
import { useFormatMoney } from "@hooks/useFormatting";
import { useTranslation } from "react-i18next";
const DonateButton = ({ amount, config, frequency, isSubmitting }, props) => {
return (
<Button
color="primary"
name="submit"
variant={
config.layout?.button?.submit?.variant ||
config.layout?.button?.variant ||
"contained"
}
fullWidth
type="submit"
size="large"
startIcon={isSubmitting ? undefined : <LockIcon />}
{...props}
>
{" "}
{isSubmitting ? (
<CircularProgress />
) : (
<CallToAction amount={amount} frequency={frequency} config={config} />
)}
</Button>
);
};
const CallToAction = ({ amount, frequency }) => {
const { t } = useTranslation();
const formatMoney = useFormatMoney();
/* i18next-extract-disable-next-line */
return t(`donation.button.cta.${frequency.toLowerCase()}`, {
amount: formatMoney(amount),
});
};
export default DonateButton;
export { CallToAction };