Skip to content

Bug when using a function as the type of a message #78

@SATBH

Description

@SATBH

The minimal reproducible example would be this.

module Main where

import Prelude

import Effect (Effect)
import Flame.Application.NoEffects (mount_)
import Flame.Html.Element as HE
import Flame.Types (Html, Subscription)
import Flame.Html.Attribute as HA
import Flame (QuerySelector(..))

type Model = Int
type Message = Model -> Model

init :: Model
init = 0

subscribe :: Array (Subscription Message)
subscribe = []

view :: Model -> Html Message
view model = HE.button [HA.onClick ((+) 1)] (show model)

update :: Model -> Message -> Model
update model message = message model

main :: Effect Unit
main = do
  mount_ (QuerySelector "body") { init, subscribe, view, update}

I get that the point of messages is to limit the type of mutations one can do on the model. But I was playing around with that, since it allows me to try some things faster while i decide how to structure the state and its mutations. Trying this however fails, and when the button is clicked the following error is logged

caught TypeError: h(...) is not a function
    at F.runHandlers (index.js:2273:51)
    at F.runEvent (index.js:2264:14)

Is this known?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions