Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Web.Hyperbole.HyperView.Types
Documentation
class (ViewId id, ViewAction (Action id)) => HyperView id es where Source #
HyperViews are interactive subsections of a Page
Create an instance with a unique view id type and a sum type describing the actions the HyperView supports. The View Id can contain context (a database id, for example)
data Message = Message deriving (Generic,ViewId
) instanceHyperView
Message es where dataAction
Message = SetMessage Text deriving (Generic,ViewAction
)update
(SetMessage msg) = pure $ messageView msg
Associated Types
Outline all actions that are permitted in this HyperView
data Action Message = SetMessage Text | ClearMessage deriving (Generic, ViewAction)
type Require id :: [Type] Source #
Include any child hyperviews here. The compiler will make sure that the page knows how to handle them
type Require = '[ChildView]
type Require id = '[]
data Root (views :: [Type]) Source #
The top-level view returned by a Page
. It carries a type-level list of every HyperView
used in our Page
so the compiler can check our work and wire everything together.
Constructors
Root |
Instances
Generic (Action (Root views)) Source # | |
Generic (Root views) Source # | |
ViewAction (Action (Root views)) Source # | |
ViewId (Root views) Source # | |
HyperView (Root views) es Source # | |
type Rep (Action (Root views)) Source # | |
type Rep (Root views) Source # | |
data Action (Root views) Source # | |
Defined in Web.Hyperbole.HyperView.Types | |
type Require (Root views) Source # | |
Defined in Web.Hyperbole.HyperView.Types |