module Halogen.HTML.Layout.NoLayout where

import HPrelude
import Halogen.HTML qualified as HH
import Halogen.HTML.Layout

newtype NoLayout w i = NoLayout_ [HH.HTML w i]

instance Layout NoLayout where
  data LayoutConstraints _ = Next
  data LayoutSettings _ = NoLayout
  layout :: forall w i. LayoutSettings NoLayout -> NoLayout w i -> HTML w i
layout LayoutSettings NoLayout
_ (NoLayout_ [HTML w i]
children) = Node HTMLdiv w i
forall w i. Node HTMLdiv w i
HH.div [] ([HTML w i] -> HTML w i) -> [HTML w i] -> HTML w i
forall a b. (a -> b) -> a -> b
$ [HTML w i] -> [HTML w i]
forall a. [a] -> [a]
reverse [HTML w i]
children

  layoutEnd :: forall w i. NoLayout w i
layoutEnd = [HTML w i] -> NoLayout w i
forall w i. [HTML w i] -> NoLayout w i
NoLayout_ []
  addComponent :: forall w i.
LayoutConstraints NoLayout
-> HTML w i -> NoLayout w i -> NoLayout w i
addComponent LayoutConstraints NoLayout
R:LayoutConstraintsNoLayout
Next HTML w i
h = ([HTML w i] -> [HTML w i]) -> NoLayout w i -> NoLayout w i
forall a b. Coercible a b => a -> b
coerce (([HTML w i] -> [HTML w i]) -> NoLayout w i -> NoLayout w i)
-> ([HTML w i] -> [HTML w i]) -> NoLayout w i -> NoLayout w i
forall a b. (a -> b) -> a -> b
$ (:) HTML w i
h