UNPKG

@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

35 lines (31 loc) 1.03 kB
import { useEffect } from "react"; import useData from "@hooks/useData"; import { sample } from "@lib/array"; import { useTranslation } from "react-i18next"; const Snowflake = () => { // if translation is missing, nothing will be loaded const { t } = useTranslation(); const [, setData] = useData(); useEffect(() => { const randomize = () => { const subjects = t("letter:subject", ""); const subject = sample(subjects.split("- ").filter(m => m.length > 0)); const letter = []; let i = 1; while (t(`letter:part-${i}`, "%%end%%") !== "%%end%%") { const message = t(`letter:part-${i}`); letter.push(sample(message.split("- ").filter(m => m.length > 0))); i += 1; } return { subject: subject, message: letter.join("\n\n").replace("\n\n", ""), }; }; const { subject, message } = randomize(); setData("message", message); setData("subject", subject); }, [setData, t]); return null; }; export default Snowflake;