@@ -1,7 +1,6 @@
1module PSLayout where
1module PSLayout where
3import Prelude
3import Prelude
5import Data.Array as A
4import Data.Array as A
6import Data.Array as Array
5import Data.Array as Array
7import Data.Array.NonEmpty as NEA
6import Data.Array.NonEmpty as NEA
@@ -142,8 +141,21 @@ mkMdxProviderComponent compiler = do
143 kids = reactChildrenToArray children
142 kids = reactChildrenToArray children
145− visibleKids =
144+ foldVisible ∷ { i ∷ Int, acc ∷ Array JSX } -> JSX -> { i ∷ Int, acc ∷ Array JSX }
146− TODO
145+ foldVisible { i, acc } a =
146+ if i >= visibleThrough then
149+ if (unsafeCoerce a).props.mdxType == "pre"
150+ && ((unsafeCoerce a).props.children.props.className == "language-purescript")
151+ && ((unsafeCoerce a).props.children.props.mdxType == "code")
152+ && ((unsafeCoerce a).props.children.props.children # parseSegments # isJust) then
153+ { i: i + 1, acc: A.snoc acc a }
155+ { i, acc: A.snoc acc a }
157+ visibleKids = kids # A.foldl foldVisible { i: 0, acc: [] ∷ Array JSX } # _.acc
147 siteInfoJSX =
159 siteInfoJSX =
149 { children:
161 { children:
@@ -210,7 +222,7 @@ mkMdxProviderComponent compiler = do
211 when (complete segs)
223 when (complete segs)
212 $ updateVisible
224 $ updateVisible
213− (\_ -> spy "setting key to" (unsafeCoerce props).key)
225+ (_ + 1)
216 true, _, _ ->
228 true, _, _ ->
@@ -221,17 +233,6 @@ mkMdxProviderComponent compiler = do
222 false, _, _ -> element (unsafeCreateDOMComponent "pre") props
234 false, _, _ -> element (unsafeCreateDOMComponent "pre") props
224− useEffect (A.length kids) do
226− firstGaps = kids # A.find (\x -> (unsafeCoerce x).props.mdxType == "pre" &&
227− ((unsafeCoerce x).props.children.props.className == "language-purescript") &&
228− ((unsafeCoerce x).props.children.props.mdxType == "code") &&
229− ((unsafeCoerce x).props.children.props.children # parseSegments # isJust)
230− ) <#> (\x -> spy "first boy" $ (unsafeCoerce x).key)
232− lastKey = kids # A.last # unsafeCoerce # _.key
233− updateVisible (const (firstGaps ?|| lastKey))
236 $ baseline
237 $ baseline
237 [ element mdxProvider
238 [ element mdxProvider