2024-07-29 14:03:16 +02:00
|
|
|
import { Box, Button } from '@mui/material'
|
2024-02-28 21:49:44 +05:00
|
|
|
import { useEffect } from 'react'
|
2024-07-26 13:15:14 +02:00
|
|
|
import { Outlet, useLocation, useNavigate } from 'react-router-dom'
|
2024-02-28 21:49:44 +05:00
|
|
|
import { appPublicRoutes } from '../../routes'
|
|
|
|
import { saveVisitedLink } from '../../utils'
|
2024-07-25 15:05:47 +02:00
|
|
|
import { CardComponent } from '../../components/Landing/CardComponent/CardComponent'
|
2024-07-29 11:22:04 +02:00
|
|
|
import { Container } from '../../components/Container'
|
|
|
|
import styles from './style.module.scss'
|
2024-07-30 13:14:18 +02:00
|
|
|
import bg_l from '../../assets/images/bg_l.svg'
|
|
|
|
import bg_r from '../../assets/images/bg_r.svg'
|
2024-07-31 14:37:10 +02:00
|
|
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|
|
|
import { faOsi } from '@fortawesome/free-brands-svg-icons'
|
|
|
|
import {
|
|
|
|
faCheck,
|
|
|
|
faMobileScreenButton,
|
|
|
|
faShieldHeart,
|
|
|
|
faSlash,
|
|
|
|
faUsers,
|
|
|
|
faWifi
|
|
|
|
} from '@fortawesome/free-solid-svg-icons'
|
|
|
|
import { FontAwesomeIconStack } from '../../components/FontAwesomeIconStack'
|
2024-02-28 21:49:44 +05:00
|
|
|
|
|
|
|
export const LandingPage = () => {
|
|
|
|
const navigate = useNavigate()
|
|
|
|
const location = useLocation()
|
|
|
|
|
|
|
|
const onSignInClick = async () => {
|
2024-07-31 18:35:45 +02:00
|
|
|
navigate(appPublicRoutes.nostr)
|
2024-02-28 21:49:44 +05:00
|
|
|
}
|
|
|
|
|
2024-07-25 15:05:47 +02:00
|
|
|
const cards = [
|
|
|
|
{
|
2024-07-31 14:37:10 +02:00
|
|
|
icon: <FontAwesomeIcon width={25} height={25} icon={faOsi} />,
|
2024-07-25 15:05:47 +02:00
|
|
|
title: <>Open Source</>,
|
|
|
|
description: (
|
|
|
|
<>
|
|
|
|
Code is MIT licenced and available at{' '}
|
2024-07-29 11:22:04 +02:00
|
|
|
<a href="https://git.nostrdev.com/sigit/sigit.io">
|
2024-07-25 15:05:47 +02:00
|
|
|
https://git.nostrdev.com/sigit/sigit.io
|
2024-07-29 11:22:04 +02:00
|
|
|
</a>
|
2024-07-25 15:05:47 +02:00
|
|
|
.
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
icon: (
|
2024-07-31 14:37:10 +02:00
|
|
|
<FontAwesomeIcon width={25} height={25} icon={faMobileScreenButton} />
|
2024-07-25 15:05:47 +02:00
|
|
|
),
|
|
|
|
title: <>Multi-Device</>,
|
|
|
|
description: (
|
|
|
|
<>
|
|
|
|
Create, Sign and Verify documents and files from any device with a
|
|
|
|
browser.
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
},
|
|
|
|
{
|
2024-07-31 14:37:10 +02:00
|
|
|
icon: <FontAwesomeIcon width={25} height={25} icon={faShieldHeart} />,
|
2024-07-25 15:05:47 +02:00
|
|
|
title: <>Secure & Private</>,
|
|
|
|
description: (
|
|
|
|
<>
|
|
|
|
Documents are encrypted locally and can be accessed only by named
|
|
|
|
recipients.
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
},
|
|
|
|
{
|
2024-07-31 14:37:10 +02:00
|
|
|
icon: <FontAwesomeIcon width={25} height={25} icon={faCheck} />,
|
2024-07-25 15:05:47 +02:00
|
|
|
title: <>Verifiable</>,
|
|
|
|
description: (
|
|
|
|
<>
|
|
|
|
Thanks to Schnorr Signatures and Web of Trust, SIGit is far more
|
|
|
|
auditable than traditional server-based offerings.
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
icon: (
|
2024-07-31 14:37:10 +02:00
|
|
|
<FontAwesomeIconStack>
|
|
|
|
<FontAwesomeIcon width={25} height={25} icon={faSlash} />
|
|
|
|
<FontAwesomeIcon width={25} height={25} icon={faWifi} />
|
|
|
|
</FontAwesomeIconStack>
|
2024-07-25 15:05:47 +02:00
|
|
|
),
|
|
|
|
title: <>Works Offline</>,
|
|
|
|
description: (
|
|
|
|
<>
|
|
|
|
Presuming you have a hardware signing device, it is possible to
|
|
|
|
complete a SIGit round without an internet connection.
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
},
|
|
|
|
{
|
2024-07-31 14:37:10 +02:00
|
|
|
icon: <FontAwesomeIcon width={25} height={25} icon={faUsers} />,
|
2024-07-25 15:05:47 +02:00
|
|
|
title: <>Multi-Party Signing</>,
|
|
|
|
description: (
|
|
|
|
<>
|
|
|
|
Choose any number of Signers and Viewers, track the signature status,
|
|
|
|
send reminders, get notifications on completion.
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
saveVisitedLink(location.pathname, location.search)
|
|
|
|
}, [location])
|
|
|
|
|
|
|
|
return (
|
2024-07-30 13:14:18 +02:00
|
|
|
<div className={styles.background}>
|
2024-07-30 13:23:06 +02:00
|
|
|
<div
|
|
|
|
className={`${styles.backgroundBlob} ${styles.backgroundBlobLeft}`}
|
2024-07-31 17:31:23 +02:00
|
|
|
style={{ backgroundImage: `url("${bg_l}")` }}
|
2024-07-30 13:23:06 +02:00
|
|
|
></div>
|
|
|
|
<div
|
|
|
|
className={`${styles.backgroundBlob} ${styles.backgroundBlobRight}`}
|
2024-07-31 17:31:23 +02:00
|
|
|
style={{ backgroundImage: `url("${bg_r}")` }}
|
2024-07-30 13:23:06 +02:00
|
|
|
></div>
|
|
|
|
|
2024-07-30 13:14:18 +02:00
|
|
|
<Container className={styles.container}>
|
|
|
|
<img className={styles.logo} src="/logo.svg" alt="Logo" width={300} />
|
|
|
|
<div className={styles.titleSection}>
|
|
|
|
<h1 className={styles.title}>
|
|
|
|
Secure & Private Document Signing
|
|
|
|
</h1>
|
|
|
|
<p className={styles.subTitle}>
|
|
|
|
An open-source and self-hostable solution for secure document
|
|
|
|
signing and verification.
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<Box
|
|
|
|
display={'grid'}
|
|
|
|
gap={'25px'}
|
|
|
|
sx={{
|
|
|
|
gridTemplateColumns: {
|
|
|
|
xs: '1fr',
|
|
|
|
sm: 'repeat(2, 1fr)',
|
|
|
|
xl: 'repeat(3, 1fr)'
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
>
|
|
|
|
{cards.map((c, i) => (
|
|
|
|
<CardComponent key={i} {...c} />
|
|
|
|
))}
|
|
|
|
</Box>
|
2024-02-28 21:49:44 +05:00
|
|
|
|
2024-07-30 13:14:18 +02:00
|
|
|
<p className={styles.description}>
|
|
|
|
SIGit is a secure & private document signing service where you can
|
|
|
|
create, sign, and verify any document from any device with a browser.
|
|
|
|
</p>
|
2024-07-25 15:05:47 +02:00
|
|
|
|
2024-07-30 13:14:18 +02:00
|
|
|
<Button
|
|
|
|
sx={{
|
|
|
|
fontSize: '22px',
|
|
|
|
padding: '16px 32px',
|
|
|
|
backgroundColor: 'var(--secondary-main)'
|
|
|
|
}}
|
|
|
|
variant="contained"
|
|
|
|
onClick={onSignInClick}
|
|
|
|
>
|
|
|
|
GET STARTED
|
|
|
|
</Button>
|
2024-07-25 15:05:47 +02:00
|
|
|
|
2024-07-30 13:14:18 +02:00
|
|
|
<Outlet />
|
|
|
|
</Container>
|
|
|
|
</div>
|
2024-02-28 21:49:44 +05:00
|
|
|
)
|
|
|
|
}
|