git.iko.soy/rowtype-yoga/psfp
on master help sign in
Revealing like a friend
commit5dfb687980e4fb8af5a43332461cdec4d1df341d authorMark Eibes <mark.eibes@gmail.com> dateTue 14 Apr 2020, 23:15 (6 years ago) parente68af4f
1 file changed+16−15
blog/src/components/PSLayout.purs+16−15
blog/src/components/PSLayout.purs+16−15
@@ -1,7 +1,6 @@
11module PSLayout where
22
33import Prelude
4−
54import Data.Array as A
65import Data.Array as Array
76import Data.Array.NonEmpty as NEA
@@ -142,8 +141,21 @@ mkMdxProviderComponent compiler = do
142141
143142 kids = reactChildrenToArray children
144143
145− visibleKids =
146− TODO
144+ foldVisible ∷ { i ∷ Int, acc ∷ Array JSX } -> JSX -> { i ∷ Int, acc ∷ Array JSX }
145+ foldVisible { i, acc } a =
146+ if i >= visibleThrough then
147+ { i, acc }
148+ else
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 }
154+ else
155+ { i, acc: A.snoc acc a }
156+
157+ visibleKids = kids # A.foldl foldVisible { i: 0, acc: [] ∷ Array JSX } # _.acc
158+
147159 siteInfoJSX =
148160 R.div
149161 { children:
@@ -210,7 +222,7 @@ mkMdxProviderComponent compiler = do
210222 \segs ->
211223 when (complete segs)
212224 $ updateVisible
213− (\_ -> spy "setting key to" (unsafeCoerce props).key)
225+ (_ + 1)
214226 }
215227 ]
216228 true, _, _ ->
@@ -221,17 +233,6 @@ mkMdxProviderComponent compiler = do
221233 }
222234 false, _, _ -> element (unsafeCreateDOMComponent "pre") props
223235 }
224− useEffect (A.length kids) do
225− let
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)
231−
232− lastKey = kids # A.last # unsafeCoerce # _.key
233− updateVisible (const (firstGaps ?|| lastKey))
234− pure mempty
235236 pure
236237 $ baseline
237238 [ element mdxProvider