Open jsmorabito opened 3 years ago
This screenshot is Google Calendar showing multiple accounts' schedules side-by-side.
Long-term multiplayer UX, multiple pages side-by-side from different graphs?
Notes from chat with @neotyk and @shanberg on potential RTC UX https://roamresearch.com/#/app/athensresearch/page/aEfAXnSHX
Backend
awaited-events
inclient.cljs
username
send with:presence/hello
Frontend - Figma Mockups
[x] Toolbar presence #1117 -
complexity/low
[ ] block inline presence #1365 -
complexity/low
[ ] conflicts for shared block/uid -
complexity/medium
2 writes to same block
we do want to lock blocks
if there is a conflict because shared block/uid, add both as siblings
edge case: backspace at start of block tries to join the block above it. merging blocks.
if someone creates a new child above your block, that increments your block/order by 1
block/uid
#[[Merge Conflict]]
tag[ ] network -
complexity/high
but can becomplexity/medium
orcomplexity/low
if we lower constraints[ ] server error -
complexity/low
Later
* selected blocks - maybe not yet, requires some engineering and refactoring + selecting substring within a block/string + fix existing `selected/items` API first * when a new block is rendered on the DOM that the user is not editing, show something - not yet + probably use animation package + problem: our current usage of react/reagent is messy and re-render happens in an erroneous way + can add in later enhancement PRs - presence partially addresses this because `editing/uid` of other users communicates this implicitly - one possible problem: if other users pastes in a large amount of text, this confuses the current user by changing their view - additional inline block UX - entered a block - editing a block - selecting substring within a block/string - network - on reconnect, do a smart diff to only send necessary tx-data (closer to local-first data persistence) - then show a summary of changes on the UX side of things