Closed gcpreston closed 2 years ago
The issue with this is that it is largely front-end state. However, LiveView wants to implement stuff like this via the back-end, which causes complications. The times table display is already loosely held together, and introducing another factor of which users are displayed right now makes that more convoluted. Implementing this via Alpine seems quite difficult, because at least what would need to happen is the present users would need to be shadowed and updated as Alpine data.
The natural solution popping out seems to be a React application which stores all room state client-side, and handles view updating client-side as well. this takes care of the times table display weirdness, and seems like the actual long-term solution.
While overall complexity is increased, this has a few notable benefits:
In the meantime, I will see if I can limit the number of users in a room to ~4 or 5, so the view doesn't get too messed up.
Implemented in #69, and the times table display mechanism is updated in #75
With multiple participants, the times table just squishes their times into the portion of the viewport it takes up
Desired: