Only list public rooms, and rooms in which the current user is listed as a member.
Don't allow users to load non-public rooms of which they're not members.
Make a separate UI for direct messages.
- List them separately in the sidebar.
- Make a new form (or at least a new button that presents the same form differently).
Move the list of rooms in state to Main
, and be sure that the description updates appropriately when changing rooms.
Add another authentication method (or two?). Remember, documentation is your friend.
Continue to enhance the app. Be creative!
Have a great weekend!
Add support for multiple rooms/channels! Hint: The first argument (endpoint
) to base.syncState
should be different for each room/channel.
Don't forget to make the sidebar links work!
Add direct messages too!
Use Firebase authentication when signing in users. Hint: Google authentication is the easiest method.
Create and style more components, based on the chat-static
content. There should be approximately one CSS file per component.
- Make a
SignIn
component with a form that takes a user name. - When the form is submitted, save that user in the
state
of theApp
component. - When
state.user
is not set, show theSignIn
component. - When
state.user
is set, show theMain
component.
Hint: You need to figure out how to do conditional rendering.