Skip to content

Commit 274ed79

Browse files
authored
feat: add privacy policy (#92)
* feat: add privacy policy * fix: update pnpm lock * fix: remove wrong export
1 parent eb4b7be commit 274ed79

File tree

8 files changed

+547
-94
lines changed

8 files changed

+547
-94
lines changed

apps/tereza/next.config.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const withMDX = require('@next/mdx')();
2+
13
/** @type {import('next').NextConfig} */
24
const nextConfig = {
35
/**
@@ -10,6 +12,7 @@ const nextConfig = {
1012
// language: 'typescript',
1113
// },
1214
// },
15+
pageExtensions: ['js', 'jsx', 'mdx', 'ts', 'tsx'],
1316
};
1417

15-
module.exports = nextConfig;
18+
module.exports = withMDX(nextConfig);

apps/tereza/package.json

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
"dependencies": {
1616
"@aws-amplify/adapter-nextjs": "^1.0.13",
1717
"@emotion/react": "^11.11.3",
18+
"@mdx-js/loader": "^3.0.0",
19+
"@mdx-js/react": "^3.0.0",
20+
"@next/mdx": "^14.1.0",
1821
"@tereza-tech/components": "workspace:^",
1922
"@ttoss/components": "^1.30.1",
2023
"@ttoss/forms": "^0.22.1",
@@ -37,6 +40,7 @@
3740
"devDependencies": {
3841
"@ttoss/config": "^1.31.4",
3942
"@ttoss/i18n-cli": "^0.7.5",
43+
"@types/mdx": "^2.0.11",
4044
"@types/node": "^20.11.16",
4145
"@types/react": "^18.2.52",
4246
"@types/react-dom": "^18.2.18",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use client';
2+
3+
import * as React from 'react';
4+
import { BaseStyles, Container } from '@ttoss/ui';
5+
6+
const MDXLayout = ({ children }: { children: React.ReactNode }) => {
7+
return (
8+
<Container
9+
sx={{
10+
maxWidth: '800px',
11+
}}
12+
>
13+
<BaseStyles>{children}</BaseStyles>
14+
</Container>
15+
);
16+
};
17+
18+
export default MDXLayout;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Privacy Policy for Tereza App
2+
3+
Last Updated: 2024-02-04
4+
5+
## 1. Introduction
6+
7+
Welcome to Tereza App! This Privacy Policy explains how we collect, use, and safeguard your personal information when you use our website and mobile application.
8+
9+
## 2. Information Collected
10+
11+
We collect the following personal information:
12+
13+
Email address: Provided by users during the registration process on our website and mobile application.
14+
15+
## 3. How We Collect Data
16+
17+
We collect data through user input on our website and mobile application for the purpose of user registration and login.
18+
19+
## 4. Purpose of Data Collection
20+
21+
The collected email address is used for the sole purpose of user login to our app.
22+
23+
## 5. Contact Information
24+
25+
If you have any questions or concerns regarding your privacy or this policy, please contact us at [email protected].
26+
27+
## 6. Data Security
28+
29+
We take reasonable measures to protect your data from unauthorized access and ensure its confidentiality.
30+
31+
## 7. Third-Party Services
32+
33+
We do not share your personal information with third parties.
34+
35+
## 8. User Rights
36+
37+
You have the right to access, correct, and delete your personal information. Please contact us at [email protected] for any data-related requests.
38+
39+
## 9. Policy Changes
40+
41+
Any changes to this Privacy Policy will be communicated through our website or app. Please check regularly for updates.
42+
43+
## 10. Governing Law
44+
45+
This Privacy Policy is governed by and construed in accordance with the laws of Brazil.
46+
47+
By using Tereza App, you agree to the terms outlined in this Privacy Policy.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
'use client';
2+
3+
import { Button, Flex, Image, Stack, Text } from '@ttoss/ui';
4+
import Link from 'next/link';
5+
6+
const Header = ({
7+
logo,
8+
title,
9+
links,
10+
}: {
11+
logo: string;
12+
title: string;
13+
links: React.ReactNode[];
14+
}) => {
15+
return (
16+
<Flex
17+
sx={{
18+
alignItems: 'center',
19+
justifyContent: 'space-between',
20+
height: 72,
21+
paddingY: 'md',
22+
paddingX: ['md', 'md', 'lg'],
23+
backgroundColor: 'background',
24+
}}
25+
>
26+
<Flex sx={{ gap: 'md' }}>
27+
<Image src={logo} width={32} height={32} />
28+
<Text sx={{ fontWeight: 'bold', fontSize: ['base', 'base', 'lg'] }}>
29+
{title}
30+
</Text>
31+
</Flex>
32+
<Flex
33+
sx={{
34+
gap: 'lg',
35+
fontSize: ['md', 'md', 'md'],
36+
}}
37+
>
38+
{links}
39+
</Flex>
40+
</Flex>
41+
);
42+
};
43+
44+
const Footer = () => {
45+
const year = new Date().getFullYear();
46+
47+
return (
48+
<Stack
49+
sx={{
50+
alignItems: 'center',
51+
justifyContent: 'center',
52+
height: 72,
53+
paddingY: 'md',
54+
backgroundColor: 'background',
55+
}}
56+
>
57+
<Link href="/">Home</Link>
58+
<Link href="/privacy">Privacy Policy</Link>
59+
<Text sx={{ fontSize: 'sm' }}>© {year} Tereza</Text>
60+
</Stack>
61+
);
62+
};
63+
64+
const links = [
65+
{
66+
href: '/my/journal',
67+
label: 'App',
68+
},
69+
];
70+
71+
const LandingPageLayout = ({ children }: { children: React.ReactNode }) => {
72+
return (
73+
<Flex sx={{ flexDirection: 'column', height: '100vh' }}>
74+
<Header
75+
title="Tereza"
76+
logo="/tereza200x200.webp"
77+
links={links.map(({ href, label }) => {
78+
return (
79+
<Link href={href} key={href}>
80+
<Button>{label}</Button>
81+
</Link>
82+
);
83+
})}
84+
/>
85+
<>{children}</>
86+
<Footer />
87+
</Flex>
88+
);
89+
};
90+
91+
export default LandingPageLayout;

apps/tereza/src/app/(landing-page)/page.tsx

+6-34
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,14 @@
11
'use client';
22

3-
import { Button, Flex } from '@ttoss/ui';
4-
import { Hero, Navbar } from '@tereza-tech/components';
5-
import Link from 'next/link';
6-
7-
const links = [
8-
{
9-
href: '/my/journal',
10-
label: 'App',
11-
},
12-
];
3+
import { Hero } from '@tereza-tech/components';
134

145
const Home = () => {
156
return (
16-
<Flex
17-
sx={{
18-
flexDirection: 'column',
19-
backgroundColor: 'secondary',
20-
minHeight: '100vh',
21-
}}
22-
>
23-
<Navbar
24-
title="Tereza"
25-
logo="/tereza200x200.webp"
26-
links={links.map(({ href, label }) => {
27-
return (
28-
<Link href={href} key={href}>
29-
<Button>{label}</Button>
30-
</Link>
31-
);
32-
})}
33-
/>
34-
<Hero
35-
headline="Tereza"
36-
subhead="We build tools to help you grow and reach your full potential."
37-
backgroundImage="/tereza.webp"
38-
/>
39-
</Flex>
7+
<Hero
8+
headline="Tereza"
9+
subhead="We build tools to help you grow and reach your full potential."
10+
backgroundImage="/tereza.webp"
11+
/>
4012
);
4113
};
4214

apps/tereza/src/mdx-components.tsx

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { MDXComponents } from 'mdx/types';
2+
3+
export const useMDXComponents = (components: MDXComponents): MDXComponents => {
4+
return {
5+
...components,
6+
};
7+
};

0 commit comments

Comments
 (0)