* origin/la-contact-delete-fix:
t groups + contacts: make removes completely clean up state
contact-js: made channel handle onChannelError
contact-hook: tested it, got /synced path working, and subscriptions loading
contacts: fix group deletion and do some quality of life fixes
Signed-off-by: Jared Tobin <jared@tlon.io>
* liam-fitzgerald/lf/publish-del-edit:
chat-fe: move cancel button below comment edit
publish-js: lift editing state to comment list
publish: fix check on edit-comment delta
publish-js: avoid unnecessary scrollbars on note view
publish-js: allow deletion and editing of comments
publish: use @tas for comment ref in marks
Signed-off-by: Jared Tobin <jared@tlon.io>
When a group is left, the permissions no longer exist and the mailbox
subscription is kicked. Before attempting to resubscribe, we simply
check if we still have permissions and if not, leave the chat.
* origin/m/link-perf:
link-listen-hook: partially revert 05e6519
link fe: refactor message display into component
link fe: more informative "empty list" display
link-view: in pagination logic, only +lent once
link: minimal initial view result
link-view: add some hints to aid profiling
Signed-off-by: Jared Tobin <jared@tlon.io>
Previously, if filtering subscriptions turned up no results, nothing was
printed. With this change, we explicitly print "no matching subscriptions"
instead.
We weren't accounting for backlog subscriptions with non-zero message
indexes in their wires. Now, we look through all of our outgoing
subscriptions to identify relevant backlog subscriptions, and leave all
of those.
The more proper fix here is to not include message indexes in the wire
in the first place, since we don't ever reuse that anywhere. But that's
a more invasive change, so we just leave a TODO for it instead.
Previously, we were removing the relevant entry from the `synced` map
before calling `+pull-wire`, which requires an entry to still be there.
This lead to subscriptions not actually being pulled, commonly leading
to "subscribe wire not unique" errors on re-join.
In addition to fixing that, `%remove` actions now try to pull the
subscription regardless of whether they have an entry in the `synced`
map or not. `%leave` is always safe, and we might want to clean up
subscriptions that shouldn't be there anymore in the first place.