// Dependencies import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { nsMerge } from 'shared/utils.mjs' // Hooks import { useState, useEffect } from 'react' import { useTranslation } from 'next-i18next' import { useAccount } from 'shared/hooks/use-account.mjs' // Components import Head from 'next/head' import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' //import { PageLink } from 'shared/components/page-link.mjs' import { BareLayout } from 'site/components/layouts/bare.mjs' import { ForceAccountCheck } from 'shared/components/account/force-account-check.mjs' import { DownIcon } from 'shared/components/icons.mjs' import { FreeSewingAnimation } from 'shared/components/animations/freesewing.mjs' import { HowDoesItWorkAnimation } from 'shared/components/animations/how-does-it-work.mjs' import { SignUp } from 'shared/components/susi/sign-up.mjs' const ns = nsMerge(pageNs, 'common', 'homepage', 'signup', 'errors') const BoldLink = ({ href, children }) => ( {children} ) /* * 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 HomePage = ({ page }) => { const [ready, setReady] = useState(0) const { t } = useTranslation(ns) const { account } = useAccount() // Duration of the FreeSewing animation const duration = 6.66 useEffect(() => { setTimeout(() => setReady(1), duration * 1000) setTimeout(() => setReady(2), duration * 1000 + 500) }, []) return ( FreeSewing.org

Hi stranger 👋

My name is Joost De Cock. I am the founder and maintainer of{' '} FreeSewing.

I am here to ask your help. Or, more accurately, your support. Which we really need.

If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work.

Thanks in advance for considering it.

love

{t('whatIsFreeSewing')}

{t('homepage:what1')}

{t('homepage:what2')}

{t('homepage:what3')}

{t('whatIsFreeSewingNot')}

{t('homepage:whatNot1')}

{t('homepage:whatNot2')}

{t('homepage:whatNot3')}

{t('homepage:whatNot4')}
{t('homepage:whatNot5')}

{t('howDoesItWork')}

) } export default HomePage export async function getStaticProps({ locale }) { return { props: { ...(await serverSideTranslations(locale, ns)), page: { locale, path: [], }, }, } } const Joost = ({ className = 'w-32' }) => ( )