Skip to content

Instantly share code, notes, and snippets.

@groteck
Forked from evancz/Spelling.elm
Last active February 20, 2020 18:01
Show Gist options
  • Save groteck/e4cc180ac182436f31f1d709466df768 to your computer and use it in GitHub Desktop.
Save groteck/e4cc180ac182436f31f1d709466df768 to your computer and use it in GitHub Desktop.
Remove unused import
elm-make Spelling.elm --output=spelling.js
<div id="spelling"></div>
<script src="spelling.js"></script>
<script>
var app = Elm.Spelling.fullscreen();
app.ports.check.subscribe(function(word) {
var suggestions = spellCheck(word);
app.ports.suggestions.send(suggestions);
});
fruits = []
function spellCheck(word) {
// You can check on the js console if fruits was updated by elm
// typing fruits
fruits.push(word);
return fruits;
}
</script>
port module Spelling exposing (..)
import Html exposing (..)
import Html.Events exposing (..)
import String
main =
program
{ init = init
, view = view
, update = update
, subscriptions = subscriptions
}
-- MODEL
type alias Model =
{ word : String
, suggestions : List String
}
init : ( Model, Cmd Msg )
init =
( Model "" [], Cmd.none )
-- UPDATE
type Msg
= Change String
| Check
| Suggest (List String)
port check : String -> Cmd msg
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
Change newWord ->
( Model newWord [], Cmd.none )
Check ->
( model, check model.word )
Suggest newSuggestions ->
( Model model.word newSuggestions, Cmd.none )
-- SUBSCRIPTIONS
port suggestions : (List String -> msg) -> Sub msg
subscriptions : Model -> Sub Msg
subscriptions model =
suggestions Suggest
-- VIEW
view : Model -> Html Msg
view model =
div []
[ input [ onInput Change ] []
, button [ onClick Check ] [ text "Check" ]
, div [] [ text (String.join ", " model.suggestions) ]
]
@jg20019
Copy link

jg20019 commented Jun 25, 2017

@Kennedy-s You need to change:
port suggestions : (List String -> msg) -> Sub Msg
to
port suggestions : (List String -> msg) -> Sub msg

@groteck
Copy link
Author

groteck commented Oct 26, 2017

@fdbeirao thanks 👍 fixed

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