---
# System prepended metadata

title: UI - Client interaction
tags: [client-archief]

---

---
tags: client-archief
---

# UI - Client interaction

Structure to be implemented by Henri

Add list of available chatrooms and update them
Add list of users in the current chatroom

1. Creation of ChatClient
2. startlogin() : 
    - start websocket and await
    - Roept requestLogin() of requestNewUser()
    - Als logged in : client.setProfile()
    - requestChatrooms() & showLimbo()
3. showlimbo() : 
    - chatrooms opvragen in client (requestChatrooms)
    - commands ingeven : processInput() : eventueel showChatroom() oproepen bij change room

4. showChatroom() :  
    - currentRoom opvragen in client
    - huidige users in chatroom opvragen (requestChatroomParticipants)
    - commands of message ingeven : processInput() : eventueel showLimbo() of startLogin() 



- In alle UI functies : keyPress event roept methode client.onKeyPress() op.
- showLimbo() wordt opgeroepen bij elke chatroomupdate van de server & niet in chatroom
- Bij processInput('\logout ...') moet de websocket afgesloten worden & moet de startlogin() opgeroepen worden, => logout() construeren..
- Bij bij processInput('\delete-profile ...') ook logout() oproepen.
- if not logged in => in processInput() negeren/error geven.
- boolean allowedBiometricData => nieuwe command allow-biometric-info toggles de boolean naar true => bij elke message enkel keystrokes meegeven als deze boolean op true staat

