1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-06-28 00:27:49 +02:00
market/src/components/organisms/Footer.tsx
Moritz Kirstein 46a16a3043
GDPR Compliance (#796)
* add cookie utils

* add gdpr metadata for ppc

* add graphql typeDefs for GDPR metadata

* add ppc variable to app config

* add ppc user preference

* add switch component

* add ppc components

* add cookie consent provider

* add consent provider to wrapRootElement

* add ppc to app component

* add cookie button to footer component

* add ppc to site metadata query

* add styles for buttons in footer

* add switch component unit tests

* renewed siteMetadata json for testing

* add gdpr metadata for testing

* add cookie module unit test

* add cookie module tests

* add customizable format to time component

* add english privacy policy

* add privacy policy slugs to user preferences and appConfig

* add privacy policy components

* add autolink for policy md navigation

* only show language select for multiple policies

* add gatsby policy page creation

* use new privacy slug user preference

* add to top button styling for markdown pages

* add policies for de, es & fr

* add pointer events to toTop buttons css

* add privacy policy basic unit test

* outsource scroll button component

* import cleanup

* add customizable delay for debounce

* add scroll button unit tests

* add disclaimer component

* add disclaimer fields as optional fields in PublishJsonData

* add acces type disclaimer

* adjusted help for desc and author fields

* add disclaimer unit tests

* minor adjustment to test

* add print button to history page

* naming changes for better readability

* add cookies hash to policies

* ppc disabled per default

* fix react unknown prop for disclaimer

* minor adjustments to cookie utils

* add gdpr example file

* change exposed gdpr metadata scope by useConsent

* update README

* readme fixes

* emoji fix

* added imprint

* adjustments to gdpr.json structure and related graphql type

* add default values for ppc

* Update app.config.js

Fixed typo.

* change variable name for consistency, remove console logs

* readability

* adjust css selector order to be consistent

* Update fr.md

updated policy

* Update es.md

updated policy

* Update en.md

updated policy

* Update de.md

* fix type issue

* replace language select input with links

* remove scroll button from codebase

* change privacy policy route to /privacy

* remove Do Not Track detection

* add size to checkbox / radio inputs

* replace switch component with checkbox inputs

* fix plain text links

* remove console log

* refactor privacy policy pages to use PageMarkdown template

* setup useUserPreferences mock for unit tests

* unit tests forprivacy policy components

* setup discalimer to use alert component

* Apply .env suggestions from code review

Co-authored-by: Jamie Hewitt <jamie.hewitt15@gmail.com>

* move gdpr example to gdpr.json

* adjustments to address .env approach for appConfig.privacyPreferenceCenter

* update readme

* add small styling option to ppc

* update README

* add ppc unit tests

* update comments

* Update README.md

Co-authored-by: Jamie Hewitt <jamie.hewitt15@gmail.com>

* Merge print into profile history

* add inifiniteApproval to UserPreference fixture

* changed default styling of PPC to small

Co-authored-by: Frederic Schwill <41265505+fr-3deric@users.noreply.github.com>
Co-authored-by: MeikeMolitor <88214332+MeikeMolitor@users.noreply.github.com>
Co-authored-by: Jamie Hewitt <jamie.hewitt15@gmail.com>
2021-10-12 09:00:57 +01:00

55 lines
1.7 KiB
TypeScript

import React, { ReactElement } from 'react'
import styles from './Footer.module.css'
import Markdown from '../atoms/Markdown'
import { useSiteMetadata } from '../../hooks/useSiteMetadata'
import { Link } from 'gatsby'
import MarketStats from '../molecules/MarketStats'
import BuildId from '../atoms/BuildId'
import { useUserPreferences } from '../../providers/UserPreferences'
import Button from '../atoms/Button'
import { useGdprMetadata } from '../../hooks/useGdprMetadata'
export default function Footer(): ReactElement {
const { copyright, appConfig } = useSiteMetadata()
const { setShowPPC } = useUserPreferences()
const { privacyPolicySlug } = useUserPreferences()
const cookies = useGdprMetadata()
const year = new Date().getFullYear()
return (
<footer className={styles.footer}>
<div className={styles.content}>
{/* <SyncStatus /> | */}
<BuildId />
<MarketStats />
<div className={styles.copyright}>
© {year} <Markdown text={copyright} />
<br />
<Link to="/imprint">Imprint</Link>
{' — '}
<Link to="/terms">Terms</Link>
{' — '}
<Link to={privacyPolicySlug}>Privacy</Link>
{appConfig.privacyPreferenceCenter === 'true' && (
<>
{' — '}
<Button
style="text"
size="small"
className="link"
onClick={() => {
setShowPPC(true)
}}
>
{cookies.optionalCookies ? 'Cookie Settings' : 'Cookies'}
</Button>
</>
)}
</div>
</div>
</footer>
)
}