@@ -1,18 +1,20 @@
11module RadixUI.Avatar where
22
33import Prelude
4−import React.Basic (JSX, ReactComponent)
4+
5+import Beta.DOM (class IsJSX)
6+import Beta.DOM (unsafeWithChildren)
7+import Beta.DOM.Internal (CSS)
8+import Beta.DOM.Internal (class IsJSX)
9+import Data.Time.Duration (Milliseconds)
510import Data.Undefined.NoProblem (Opt, pseudoMap)
611import Data.Undefined.NoProblem.Closed (class Coerce, coerce)
7−import React.Basic (element) as React
8−import Data.Time.Duration (Milliseconds)
912import Effect (Effect)
10−import Beta.DOM.Internal (CSS)
11−import Beta.DOM (class IsJSX)
12−import Effect.Uncurried (mkEffectFn1)
13+import Effect.Uncurried (EffectFn1, mkEffectFn1)
1314import Partial.Unsafe (unsafeCrashWith)
14−import Beta.DOM (unsafeWithChildren)
15−import Beta.DOM.Internal (class IsJSX)
15+import React.Basic (JSX, ReactComponent)
16+import React.Basic (element) as React
17+import Unsafe.Coerce (unsafeCoerce)
1618
1719foreign import rootImpl :: forall r. ReactComponent { | r }
1820foreign import imageImpl :: forall r. ReactComponent { | r }
@@ -45,16 +47,18 @@ toImageLoadingStatus = case _ of
4547type ImageProps =
4648 { asChild :: Opt Boolean
4749 , className :: Opt String
50+ , src :: Opt String
51+ , alt :: Opt String
4852 , style :: Opt CSS
4953 , onLoadingStatusChange :: Opt (ImageLoadingStatus -> Effect Unit)
5054 }
5155
52−image :: forall p kids. Coerce p ImageProps => IsJSX kids => p -> kids -> JSX
53−image props' kids = do
56+image :: forall p. Coerce p ImageProps => p -> JSX
57+image props' = do
5458 let props = coerce props' :: ImageProps
55− React.element imageImpl $ props
56− { onLoadingStatusChange = pseudoMap (mkEffectFn1 <<< (toImageLoadingStatus >>> _)) props.onLoadingStatusChange }
57− # unsafeWithChildren kids
59+ React.element imageImpl $ unsafeCoerce $ props
60+ { onLoadingStatusChange = pseudoMap (mkEffectFn1 <<< (toImageLoadingStatus >>> _)) props.onLoadingStatusChange :: Opt (EffectFn1 String Unit)
61+ }
5862
5963
6064type FallbackProps =