import React from 'react'
import {StyleSheet, View} from 'react-native'
import {usePalette} from 'lib/hooks/usePalette'
import {Text} from './text/Text'
import {TextLink} from './Link'
import {isDesktopWeb} from 'platform/detection'
/**
* These utilities are used to define long documents in an html-like
* DSL. See for instance /locale/en/privacy-policy.tsx
*/
export function H1({children}: React.PropsWithChildren<{}>) {
const pal = usePalette('default')
return (
{children}
)
}
export function H2({children}: React.PropsWithChildren<{}>) {
const pal = usePalette('default')
return (
{children}
)
}
export function H3({children}: React.PropsWithChildren<{}>) {
const pal = usePalette('default')
return (
{children}
)
}
export function H4({children}: React.PropsWithChildren<{}>) {
const pal = usePalette('default')
return (
{children}
)
}
export function P({children}: React.PropsWithChildren<{}>) {
const pal = usePalette('default')
return (
{children}
)
}
export function UL({
children,
isChild,
}: React.PropsWithChildren<{isChild: boolean}>) {
return (
{markChildProps(children)}
)
}
export function OL({
children,
isChild,
}: React.PropsWithChildren<{isChild: boolean}>) {
return (
{markChildProps(children)}
)
}
export function LI({
children,
value,
}: React.PropsWithChildren<{value?: string}>) {
const pal = usePalette('default')
return (
{value || <>•>}
{markChildProps(children)}
)
}
export function A({children, href}: React.PropsWithChildren<{href: string}>) {
const pal = usePalette('default')
return (
)
}
export function STRONG({children}: React.PropsWithChildren<{}>) {
const pal = usePalette('default')
return (
{children}
)
}
export function EM({children}: React.PropsWithChildren<{}>) {
const pal = usePalette('default')
return (
{children}
)
}
function markChildProps(children) {
return React.Children.map(children, child => {
if (React.isValidElement(child)) {
return React.cloneElement(child, {isChild: true})
}
return child
})
}
const styles = StyleSheet.create({
h1: {
marginTop: 20,
marginBottom: 10,
letterSpacing: 0.8,
},
h2: {
marginTop: 20,
marginBottom: 10,
letterSpacing: 0.8,
},
h3: {
marginBottom: 10,
},
h4: {
marginBottom: 10,
fontWeight: 'bold',
},
p: {
marginBottom: 10,
},
ul: {
marginBottom: 10,
paddingLeft: isDesktopWeb ? 18 : 4,
},
ulChild: {
paddingTop: 10,
marginBottom: 0,
},
ol: {
marginBottom: 10,
paddingLeft: isDesktopWeb ? 18 : 4,
},
olChild: {
paddingTop: 10,
marginBottom: 0,
},
li: {
flexDirection: 'row',
paddingRight: 20,
marginBottom: 10,
},
liBullet: {
paddingRight: 10,
},
liText: {},
a: {
marginBottom: 10,
},
em: {
fontStyle: 'italic',
},
})