chipjacks/emoji-data/1.0.0

NOTE: the latest version is 1.0.1

EmojiData.Fetch

task : Task Error (List EmojiData)

Make two CDN requests to load emoji data JSON. This is an alternative to using EmojiData.List.emojis that reduces bundle size by about 300KB.

type alias Model =
    { emojis : List EmojiData
    }


init : () -> ( Model, Cmd Msg )
init _ =
    ( Model [], Task.attempt FetchedEmojiData EmojiData.Fetch.task )


type Msg
    = FetchedEmojiData (Result Http.Error (List EmojiData))


update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    case msg of
        FetchedEmojiData result ->
            case result of
                Ok emojis ->
                    ( { model | emojis = emojis }, Cmd.none )


                Err err ->
                    ( model
                    , Task.attempt FetchedEmojiData
                        (Process.sleep 1000
                            |> Task.andThen (\_ -> EmojiData.Fetch.task)
                        )
                    )