// Dependencies import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { nsMerge } from 'shared/utils.mjs' // Hooks import { useTranslation } from 'next-i18next' import { useAccount } from 'shared/hooks/use-account.mjs' import { useEffect, useState } from 'react' // Components import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' import { PageLink } from 'shared/components/link.mjs' import { Popout } from 'shared/components/popout/index.mjs' // Translation namespaces used on this page const namespaces = nsMerge(pageNs, 'patrons') /* * FIXME: This entire page needs to be adapted once we * migrate users from v2 to v3 */ /* eslint-disable @next/next/no-img-element */ const Patron = ({ patron }) => (
{patron.username} {patron.username}
) /*

FreeSewing is made possible by the financial support of our patrons. Together, they are a formidable force for good in the world, and we love them all very much.

{patron && (

To join this awesome group of people,{' '} .

)}
{patrons.map((patron) => ( ))}
*/ /* * Each page MUST be wrapped in the PageWrapper component. * You also MUST spread props.page into this wrapper component * when path and locale come from static props (as here) * or set them manually. */ const PatronsPage = ({ page }) => { const { t } = useTranslation(namespaces) const { account } = useAccount() const [patron, setPatron] = useState(false) useEffect(() => { // Do this here to avoid hydration issues if (account.patron && account.patron > 0) setPatron(true) }, [account.patron]) return ( Create new v3 patrons page ) } export default PatronsPage export async function getStaticProps({ locale }) { return { props: { ...(await serverSideTranslations(locale, namespaces)), page: { locale, path: ['patrons'], }, }, } }