mirror of
https://github.com/LaconicNetwork/laconic.com.git
synced 2026-02-28 13:44:09 +00:00
commit
e8af73d674
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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&id=405947e375&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']}>
|
||||
|
||||
@ -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>
|
||||
)
|
||||
|
||||
@ -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>
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user