Skip to content

Commit e3060f3

Browse files
committed
Add legal pages
1 parent 31e54ac commit e3060f3

File tree

3 files changed

+181
-0
lines changed

3 files changed

+181
-0
lines changed

src/pages/legal/index.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import React, {useState} from 'react';
2+
import clsx from 'clsx';
3+
import Layout from '@theme/Layout';
4+
import styles from '../index.module.css';
5+
import HomepageHeader from '../../components/HomepageHeader';
6+
7+
8+
const header = {
9+
title: 'Legal Information',
10+
tagLine: 'Legal Information',
11+
text: (
12+
<>
13+
Find important legal information about DataSQRL
14+
</>
15+
),
16+
LogoSvg: require('/static/img/generic/undraw_data.svg').default,
17+
}
18+
19+
export default function Legal() {
20+
return (
21+
<Layout
22+
title={header.title}
23+
>
24+
<HomepageHeader {...header} />
25+
<main>
26+
<section className={styles.content}>
27+
<div className="container">
28+
<div className="row margin-bottom--md">
29+
<div className="col col--3"></div>
30+
<div className="col col--6">
31+
<h2>Information Security Policy</h2>
32+
<p>
33+
Our most recent information security policy can be downloaded as a PDF document. <br />
34+
<a href={require('/static/docs/legal/infosec_policy.pdf').default} target="_blank" rel="noopener noreferrer">
35+
Download PDF
36+
</a>
37+
</p>
38+
</div>
39+
<div className="col col--3"></div>
40+
</div>
41+
</div>
42+
</section>
43+
</main>
44+
</Layout>
45+
);
46+
}

src/pages/legal/subprocessors.js

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
import React, {useState} from 'react';
2+
import clsx from 'clsx';
3+
import Layout from '@theme/Layout';
4+
import styles from '../index.module.css';
5+
import HomepageHeader from '../../components/HomepageHeader';
6+
7+
8+
const header = {
9+
title: 'DataSQRL Sub-processors',
10+
tagLine: 'DataSQRL Sub-processors',
11+
text: (
12+
<>
13+
Effective Starting October 1st, 2024
14+
</>
15+
),
16+
LogoSvg: require('/static/img/generic/undraw_data.svg').default,
17+
}
18+
19+
const subprocessors = [
20+
{
21+
name: "Amazon Web Services, Inc.",
22+
products: "DataSQRL Cloud",
23+
purpose: "Cloud hosting provider",
24+
location: "USA",
25+
},
26+
{
27+
name: "Google, LLC",
28+
products: "All Products",
29+
purpose: "Maintaining customer data and providing customer service",
30+
location: "USA",
31+
},
32+
{
33+
name: "Vercel, Inc.",
34+
products: "DataSQRL Cloud",
35+
purpose: "Cloud hosting provider",
36+
location: "USA",
37+
},
38+
{
39+
name: "Formspark (owned by Trampoline Software SRL)",
40+
products: "DataSQRL Website",
41+
purpose: "Form-based data collection",
42+
location: "USA",
43+
}
44+
];
45+
46+
const FORMSPARK_ACTION_URL = "https://submit-form.com/3ziakjvz2";
47+
48+
function EmailSubscribe() {
49+
const [email, setEmail] = useState("");
50+
const [feedback, setFeedback] = useState("");
51+
52+
const onSubmit = async (e) => {
53+
setFeedback("Adding your email to subscription...")
54+
e.preventDefault();
55+
await fetch(FORMSPARK_ACTION_URL, {
56+
method: "POST",
57+
headers: {
58+
"Content-Type": "application/json",
59+
Accept: "application/json",
60+
},
61+
body: JSON.stringify({
62+
"email" : email,
63+
}),
64+
});
65+
setFeedback("You are subscribed!");
66+
setEmail("");
67+
};
68+
69+
return (
70+
<form onSubmit={onSubmit} className={styles.emailForm}>
71+
<label for="email">Enter your email for updates to sub-processors: </label>
72+
<input type="email" id="email" name="email" required="" value={email} onChange={(e) => setEmail(e.target.value)} />
73+
<button type="submit">Subscribe</button>
74+
{ feedback ? feedback : null }
75+
</form>
76+
);
77+
}
78+
79+
export default function Legal() {
80+
return (
81+
<Layout
82+
title={header.title}
83+
>
84+
<HomepageHeader {...header} />
85+
<main>
86+
<section className={styles.content}>
87+
<div className="container">
88+
<div className="row margin-bottom--md">
89+
<div className="col col--1"></div>
90+
<div className="col col--10">
91+
<h2>Overview</h2>
92+
<p>
93+
DataSQRL uses certain platform sub-processors, infrastructure suppliers, and other third-party
94+
partners to provide DataSQRL Services to its customers. <br/>
95+
The table below contains the list of sub-processors.
96+
</p>
97+
<h2>Subscribe to updates to DataSQRL's sub-processor list</h2>
98+
<p>
99+
DataSQRL will update the DataSQRL sub-processor lists via this website. To be notified of changes to
100+
the sub-processor list,
101+
please subscribe to changes by entering your email below.
102+
</p>
103+
<p>
104+
<EmailSubscribe/>
105+
</p>
106+
<h2>Sub-processors</h2>
107+
<table>
108+
<thead>
109+
<tr>
110+
<th>Sub-processor</th>
111+
<th>Applicable Products</th>
112+
<th>Nature and Purpose of Processing</th>
113+
<th>Location of Processing</th>
114+
</tr>
115+
</thead>
116+
<tbody>
117+
{subprocessors.map((row, index) => (
118+
<tr key={index}>
119+
<td>{row.name}</td>
120+
<td>{row.products}</td>
121+
<td>{row.purpose}</td>
122+
<td>{row.location}</td>
123+
</tr>
124+
))}
125+
</tbody>
126+
</table>
127+
</div>
128+
<div className="col col--1"></div>
129+
</div>
130+
</div>
131+
</section>
132+
</main>
133+
</Layout>
134+
);
135+
}
191 KB
Binary file not shown.

0 commit comments

Comments
 (0)