diff options
Diffstat (limited to 'src/view/com/util')
-rw-r--r-- | src/view/com/util/BlurView.web.tsx | 1 | ||||
-rw-r--r-- | src/view/com/util/Html.tsx | 28 | ||||
-rw-r--r-- | src/view/com/util/UserInfoText.tsx | 4 |
3 files changed, 21 insertions, 12 deletions
diff --git a/src/view/com/util/BlurView.web.tsx b/src/view/com/util/BlurView.web.tsx index 5267e6ade..d1fb4665f 100644 --- a/src/view/com/util/BlurView.web.tsx +++ b/src/view/com/util/BlurView.web.tsx @@ -15,6 +15,7 @@ export const BlurView = ({ }: React.PropsWithChildren<BlurViewProps>) => { // @ts-ignore using an RNW-specific attribute here -prf let blur = `blur(${blurAmount || 10}px` + // @ts-ignore using an RNW-specific attribute here -prf style = addStyle(style, {backdropFilter: blur, WebkitBackdropFilter: blur}) if (blurType === 'dark') { style = addStyle(style, styles.dark) diff --git a/src/view/com/util/Html.tsx b/src/view/com/util/Html.tsx index dbf24a83a..8d3f29fb0 100644 --- a/src/view/com/util/Html.tsx +++ b/src/view/com/util/Html.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import * as React from 'react' import {StyleSheet, View} from 'react-native' import {usePalette} from 'lib/hooks/usePalette' import {Text} from './text/Text' @@ -10,6 +10,15 @@ import {isDesktopWeb} from 'platform/detection' * DSL. See for instance /locale/en/privacy-policy.tsx */ +interface IsChildProps { + isChild?: boolean +} + +// type ReactNodeWithIsChildProp = +// | React.ReactElement<IsChildProps> +// | React.ReactElement<IsChildProps>[] +// | React.ReactNode + export function H1({children}: React.PropsWithChildren<{}>) { const pal = usePalette('default') return ( @@ -55,10 +64,7 @@ export function P({children}: React.PropsWithChildren<{}>) { ) } -export function UL({ - children, - isChild, -}: React.PropsWithChildren<{isChild: boolean}>) { +export function UL({children, isChild}: React.PropsWithChildren<IsChildProps>) { return ( <View style={[styles.ul, isChild && styles.ulChild]}> {markChildProps(children)} @@ -66,10 +72,7 @@ export function UL({ ) } -export function OL({ - children, - isChild, -}: React.PropsWithChildren<{isChild: boolean}>) { +export function OL({children, isChild}: React.PropsWithChildren<IsChildProps>) { return ( <View style={[styles.ol, isChild && styles.olChild]}> {markChildProps(children)} @@ -122,10 +125,13 @@ export function EM({children}: React.PropsWithChildren<{}>) { ) } -function markChildProps(children) { +function markChildProps(children: React.ReactNode) { return React.Children.map(children, child => { if (React.isValidElement(child)) { - return React.cloneElement(child, {isChild: true}) + return React.cloneElement<IsChildProps>( + child as React.ReactElement<IsChildProps>, + {isChild: true}, + ) } return child }) diff --git a/src/view/com/util/UserInfoText.tsx b/src/view/com/util/UserInfoText.tsx index b8f6e082e..b737b2b1e 100644 --- a/src/view/com/util/UserInfoText.tsx +++ b/src/view/com/util/UserInfoText.tsx @@ -70,7 +70,9 @@ export function UserInfoText({ numberOfLines={1} href={`/profile/${profile.handle}`} text={`${prefix || ''}${sanitizeDisplayName( - profile[attr] || profile.handle, + typeof profile[attr] === 'string' && profile[attr] + ? (profile[attr] as string) + : profile.handle, )}`} /> ) |