Merge pull request #141 from LaconicNetwork/rm-mailchimp

Rm mailchimp
This commit is contained in:
Zach 2023-05-05 10:44:05 -04:00 committed by GitHub
commit e8af73d674
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 184 deletions

View File

@ -3,39 +3,7 @@
"contactPage": {
"heroHeading": "Get in Touch",
"heroLine": "For general or technical inquiries",
"heroLink": "https://discord.com/invite/ukhbBemyxY",
"heroMobileLinkLabel": "CONTACT US",
"formHeading": "Contact Form",
"formWarning": "ALL FIELDS ARE REQUIRED",
"formLabelEmail": "Email",
"formPlaceholderEmail": "email@email.com*",
"formLabelMsg": "Message",
"formPlaceholderMsg": "Write a message or a comment*",
"formLabelPartner": "Type of inquiry",
"formPlaceholderPartner": "Inquiry*",
"formSelectOptions": [
{
"value": "Partnership",
"label": "Partnership"
},
{
"value": "Validator",
"label": "Validator/Member"
},
{
"value": "Investor",
"label": "Investor"
},
{
"value": "Press",
"label": "Press"
},
{
"value": "Marketing",
"label": "Marketing"
}
],
"formLabelButton": "SUBMIT MESSAGE"
"heroLink": "https://discord.com/invite/ukhbBemyxY"
}
}
}
}

View File

@ -48,44 +48,7 @@
"oportunitiesItem02Links": null,
"oportunitiesItem03Links": null,
"oportunitiesItem04Links": null,
"oportunitiesItem05Links": null,
"contactButtonLabel": "GET IN TOUCH",
"contactCompanyLabel": "Company",
"contactCompanyPlaceholder": "Your company name*",
"contactDescription": "We have opportunities for people across different levels of technical expertise.",
"contactEmailLabel": "Email",
"contactEmailPlaceholder": "email@email.com*",
"contactFormHeading": "Share a bit about yourself, and join for early access.",
"contactFormWarning": "All fields are required",
"contactHeading": "Are you interested in participating in Laconic's Incentivized Testnet?",
"contactInquiryLabel": "Inquiry",
"contactInquiryOptions": [
{
"value": "Validator",
"label": "Validator/Member"
},
{
"value": "Investor",
"label": "Investor"
},
{
"value": "Developer",
"label": "Developer"
},
{
"value": "Customer",
"label": "Prospective Customer"
}
],
"contactInquiryPlaceholder": "Investor*",
"contactLegalLabel": "What legal jurisdiction is your entity based in?",
"contactLegalPlaceholder": "Your jurisdiction*",
"contactMsgLabel": "Message",
"contactMsgPlaceholder": "Write a message or a comment*",
"contactNameLabel": "Name",
"contactNamePlaceholder": "Your name*",
"contactRoleLabel": "Role",
"contactRolePlaceholder": "Your role*"
"oportunitiesItem05Links": null
}
}
}
}

View File

@ -1,11 +1,7 @@
import clsx from 'clsx'
import { useRouter } from 'next/router'
import { useTheme } from 'next-themes'
import { useEffect, useRef, useState } from 'react'
import MailchimpSubscribe from 'react-mailchimp-subscribe'
import { ArrowLink } from '~/components/icons/arrow'
import { Isotype, LogoFooter } from '~/components/icons/logo'
import { LogoFooter } from '~/components/icons/logo'
import {
Discord,
Facebook,
@ -17,74 +13,12 @@ import {
Youtube
} from '~/components/icons/socials'
import { Container } from '~/components/layout/container'
import Section from '~/components/layout/section'
import Heading from '~/components/primitives/heading'
import Link from '~/components/primitives/link'
import Switch from '~/components/primitives/switch'
import { useIsomorphicLayoutEffect } from '~/hooks/use-isomorphic-layout-effect'
import s from './footer.module.scss'
type FormProps = {
className?: string
message: string
onSubmitted?: ({ EMAIL }: { EMAIL: string }) => void
status: 'success' | 'error' | 'sending'
style?: React.CSSProperties
}
const SimpleForm = ({
className,
message,
onSubmitted,
status,
style
}: FormProps) => {
let input: HTMLInputElement | null
const submit = (e: any) => {
e.preventDefault()
if (!onSubmitted) return
input &&
input.value.indexOf('@') > -1 &&
onSubmitted({
EMAIL: input.value
})
}
useEffect(() => {
if (!input) return
if (status === 'success') {
input.value = ''
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [status])
return (
<div className={clsx(s['form'], className)} style={style}>
{status === 'sending' && <div>sending...</div>}
{status === 'error' && (
<div dangerouslySetInnerHTML={{ __html: message }} />
)}
{status === 'success' && (
<div dangerouslySetInnerHTML={{ __html: message }} />
)}
<form action="/" onSubmit={(e) => submit(e)}>
<input
placeholder="Enter your email to stay updated"
ref={(node) => (input = node)}
required
type="email"
/>
<button type="submit">
<ArrowLink />
<span className="sr-only">Send</span>
</button>
</form>
</div>
)
}
interface Props {
data: {
aboutLinks: { href: string; title: string }[]
@ -151,38 +85,8 @@ export const Footer = ({ data }: Props) => {
)
}, [show])
const url =
'https://laconic.us8.list-manage.com/subscribe/post?u=d794a98f9fde12ec254350332&amp;id=405947e375&amp;f_id=00e16be0f0'
return (
<>
{show && (
<Section className={s['pre__footer--section']}>
<div className={s['gradient_line']}></div>
<Container className={s['pre__footer']}>
<Isotype className={s['isotype']} />
<Heading
as="h2"
variant="md"
centered
style={{ textTransform: 'capitalize' }}
>
Sign-up for our <br /> Newsletter
</Heading>
<MailchimpSubscribe
url={url}
// @ts-ignore
render={({ subscribe, status, message }) => (
<SimpleForm
onSubmitted={(formData) => subscribe(formData)}
status={status}
message={message}
/>
)}
/>
</Container>
</Section>
)}
{!is404 && (
<footer className={s.footer}>
<Container className={s['container']}>

View File

@ -3,20 +3,18 @@ import { InferGetStaticPropsType } from 'next'
import { Meta } from '~/components/common/meta'
import { PageLayout } from '~/components/layout/page'
import Socials from '~/components/sections/community/socials'
import Form from '~/components/sections/contact/form'
import Hero from '~/components/sections/contact/hero'
import { CommunitySocials } from '~/lib/cms/queries/community'
import { ContactForm, ContactHero } from '~/lib/cms/queries/contact'
import { ContactHero } from '~/lib/cms/queries/contact'
import { FooterQuery } from '~/lib/cms/queries/footer'
import { HeaderQuery } from '~/lib/cms/queries/header'
import { request } from '../lib/datocms'
export const getStaticProps = async () => {
const [heroData, formData, socialsData, footerData, headerData] =
const [heroData, socialsData, footerData, headerData] =
await Promise.all([
request(ContactHero),
request(ContactForm),
request(CommunitySocials),
request(FooterQuery),
request(HeaderQuery)
@ -25,7 +23,6 @@ export const getStaticProps = async () => {
return {
props: {
heroData: heroData?.contactPage,
formData: formData?.contactPage,
socialsData: socialsData?.communityPage,
footerData: footerData?.footer,
headerData: headerData?.header
@ -35,7 +32,6 @@ export const getStaticProps = async () => {
}
const Contact = ({
heroData,
formData,
socialsData,
footerData,
headerData
@ -44,7 +40,6 @@ const Contact = ({
<PageLayout footerData={footerData} headerData={headerData}>
<Meta title="Contact | Laconic Network" />
<Hero data={heroData} />
<Form data={formData} />
<Socials data={socialsData} alternative={true} />
</PageLayout>
)

View File

@ -19,14 +19,12 @@ import { InferGetStaticPropsType } from 'next'
import { Meta } from '~/components/common/meta'
import { PageLayout } from '~/components/layout/page'
import WhatOthersSay from '~/components/sections/homepage/what-others-say'
import Contact from '~/components/sections/partners/contact'
import Hero from '~/components/sections/partners/hero'
import Opportunities from '~/components/sections/partners/opportunities'
import { FooterQuery } from '~/lib/cms/queries/footer'
import { HeaderQuery } from '~/lib/cms/queries/header'
import { HomeOthers, Testimonials } from '~/lib/cms/queries/home'
import {
PartnersContact,
PartnersHero,
PartnersOportunities
} from '~/lib/cms/queries/partners'
@ -56,7 +54,6 @@ export const getStaticProps = async () => {
othersData,
testimonialsData,
heroData,
contactData,
optData,
footerData,
headerData
@ -64,7 +61,6 @@ export const getStaticProps = async () => {
request(HomeOthers),
request(Testimonials),
request(PartnersHero),
request(PartnersContact),
request(PartnersOportunities),
request(FooterQuery),
request(HeaderQuery)
@ -75,7 +71,6 @@ export const getStaticProps = async () => {
othersData: othersData?.homePage,
testimonialsData: testimonialsData?.allTestimonials,
heroData: heroData?.partnersPage,
contactData: contactData?.partnersPage,
optData: optData?.partnersPage,
footerData: footerData?.footer,
headerData: headerData?.header,
@ -97,7 +92,6 @@ const Careers = ({
othersData,
testimonialsData,
heroData,
contactData,
optData,
footerData,
headerData
@ -107,7 +101,6 @@ const Careers = ({
<Meta title="Partners | Laconic Network" />
<Hero data={heroData} />
<Opportunities data={optData} />
<Contact data={contactData} />
<WhatOthersSay data={othersData} testimonialsData={testimonialsData} />
</PageLayout>
)