Reverts the shared helper the timeout change was extracted into, leaving the
effect where each view already had it. NewChatView and ViewModifiers are no
longer touched by this branch at all - the first was already at 0.5s.
An invitation being accepted is a fact about the invitation, not about the
view that shows it, but each view kept its own flag. The chat list row, the
long-press menu, the accept alert, the composer banner, the chat item
"tap to join" and the notification action therefore disagreed: accepting
from one left the others fully enabled, and the second accept reached the
core with an invitation the first one had already used.
ChatModel now records which contact requests are being accepted and which
groups are being joined. The shared acceptContactRequest and the new
joinGroup maintain it, so every caller participates without changing its
call site, and every view derives from it instead of owning a flag. The
record is taken before the request is sent, so a second tap in the same
view is blocked as well.
The connect composer no longer renders in a group's support scope: on
desktop that is a second view of the same group next to the main one, and
it offered its own Join button.
The effect that turns on the progress indicator after a delay was copied
into 5 Kotlin and 4 Swift views. Two of the Swift copies had drifted: the
deferred write captured the value that started the delay rather than
reading the current one, so an operation that finished before the delay
elapsed left the indicator on with nothing to turn it off.
Timing is unchanged.
* core: option to show group as sender of chat item (for the initial items, e.g. welcome message)
* add chat item to contact request chats
* return AChat for prepared chats and contact requests
* update iOS api types, show prepared contact as blue, show preview info when content message is not available (previously was showing feature item)
* ios: remove ContactType
* ios: show group as sender, fix avatar not showing when member message sequence starts with merged items
* ios: update compose UI for all connection scenarios
* address settings
* ios: address settings UI
* fix tests
* fix tests 2
* ios: fix minor issues