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
  • Star 14 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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) ]
]
@hunan-rostomyan
Copy link

Thanks for porting (no pun intended) to 0.18!

@fdbeirao
Copy link

fdbeirao commented Mar 5, 2017

If you compile with --warn you get this message:

-- unused import ---------------------------------------------- src\elm\Main.elm

Module `Html.Attributes` is unused.

4| import Html.Attributes exposing (..)
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Best to remove it. Don't save code quality for later!

Kudos for the port 👍

@Kennedy-s
Copy link

I came along that error and am still new i Elm i its a nice language for Front end and am enjoying it

Detected errors in 1 module.

-- PORT ERROR ----------------------------------------------------- spelling.elm Port suggestions has an invalid type. 76| port suggestions : (List String -> msg) -> Sub Msg ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You are saying it should be: (List String -> msg) -> Platform.Sub.Sub Spelling.Msg

@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