about summary refs log tree commit diff
path: root/src/view/com/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com/util')
-rw-r--r--src/view/com/util/BlurView.web.tsx1
-rw-r--r--src/view/com/util/Html.tsx28
-rw-r--r--src/view/com/util/UserInfoText.tsx4
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,
         )}`}
       />
     )