Skip to content

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

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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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