[017.5] Elm Weekly Drip #17 and Exercise: Add Chat Notifications and Channel Switching

Another juicy linkdump, and an exercise to further flesh out our chat interface.

Subscribe now

Elm Weekly Drip #17 and Exercise: Add Chat Notifications and Channel Switching [08.05.2016]

Another juicy linkdump. This week's links cover: a 2 hour pairing session video with Evan; some advanced atom Elm features; a react-elm implementation that shuts down the elm app on unmount; a package to start Elm apps without views; interacting with the DOM.

A kitten generator

API Design Session with Evan - elm-autocomplete [ from @czaplic ]

This is a beefy two and a half hour video where Evan pairs to rewrite the elm-autocomplete package.

atom elmjutsu package [ from halohalospecial ]

An atom package providing: Go To Definition; Return From Definition; Go To Symbol; Toggle Sidekick; Autocomplete.

Go To Definition example

zperrault/react-elm [ from Zach Perrault ]

A webpack loader that makes it trivial to turn an Elm module into a React component.

lukewestby/worker [ from @luke_dot_js ]

An easy way to build Elm applications without views. You might want to do this if you just wanted to build business logic in Elm but needed to integrate with something else for the views, for instance.

Elm and the DOM [ from Søren Debois ]


We've done more work on the chat application this week. Right now when you initiate a conversation with someone else, you can't get back to the lobby. Also, it immediately opens the conversation with the other user, which is not ideal. Modify the app in the following ways:

  • Add a list of non-conversation channels that can be chosen - you could just hardcode room:lobby so you can get back to it.
  • Enable switching to the lobby upon click. Enable switching to an ongoing conversation when clicking another user in the userlist. Right now the application will completely replace the existing Chat model when you JoinChannel - it should probably not do that if there's already an entry in chats with the channel's name.
  • When alice initiates a conversation with bob, bob's interface should just show a badge on her user in the user list to make this clear, rather than immediately switching to that conversation.
  • The badge should also show up for any rooms the user is presently in.