// 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 Head from 'next/head' import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' import { BareLayout } from 'site/components/layouts/bare.mjs' import { ForceAccountCheck } from 'shared/components/account/force-account-check.mjs' import { OkIcon, DesignIcon, ShowcaseIcon, DocsIcon, HelpIcon, ChatIcon, } 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' import { PleaseSubscribe } from 'shared/components/patrons/please-subscribe.mjs' import Link from 'next/link' const ns = nsMerge(pageNs, 'patrons', 'common', 'homepage', 'signup', 'errors') const CardLink = ({ bg, textColor, href, title, text, icon }) => (
{text}
) /* * 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 { t } = useTranslation(ns) const { account } = useAccount() const [user, setUser] = useState(false) // Duration of the FreeSewing animation const duration = 6.66 useEffect(() => { // Do this here to avoid hydration issues if (account.username) setUser(account.username) }, [account.username]) return ({t('homepage:what1')}
{t('homepage:what3')}
{t('homepage:whatNot1')}
{t('homepage:whatNot2')}